Unity3d 戰鬥飄字 屏幕最上方座標計算

    ///<summary>
    ///返回_3dPos 到 屏幕上方的NGUI位置
    /// </summary>
    /// <param name="_3dPos">必須在3d相機的視野範圍內,否則轉換錯誤</param>
    /// <param name="_3d"></param>
    /// <param name="_2d"></param>
    /// <param name="uiWidget"></param>
    /// <returns></returns>
    public static Vector3 TopNgui(Vector3 _3dPos)
    {
        Vector3 pos = _3dCamera.WorldToViewportPoint(_3dPos);//頭頂座標轉 視口座標 ,得到頭頂座標在視口座標的位置,
        Vector3 ViewportScreenTop = new Vector3(pos.x, 1f); //然後就可以計算得出 人物對應屏幕的最上方座標, 屏幕最上方點視口座標 new Vector3(pos.x, 1f)
        _uiLabel.transform.position = _2dCamera.ViewportToWorldPoint(ViewportScreenTop); // 然後把 屏幕最上方 座標轉成 世界座標
        pos = _uiLabel.transform.localPosition;
        pos.x = Mathf.FloorToInt(pos.x);
        pos.y = Mathf.FloorToInt(pos.y);
        pos.z = 0f;
        _uiLabel.transform.localPosition = pos;
        return pos;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章