[unity]屏幕座標轉世界座標

1.使用ScreenToWorldPoint將獲取的屏幕位置直接轉成世界座標:spa

 

            1:獲取的屏幕座標Input.mousePosition是一個2d座標,z軸值爲0,這個z值是相對於當前camera的,爲零表示z軸與相機重合了,所以給ScreenToWorlfdPoint傳值時,不能直接傳Input.mousePosition,不然獲取的世界座標永遠只有一個值;.net

 

            2:爲了解決坑1,便使傳入的z軸值,那麼傳什麼值呢,能夠取當前相機的z軸值絕對值,大概意思就是距離相機的距離,生成點的位置最後會在一個平面(由於傳入的z值固定了),比較適合一個平面內取點code

 

2.射線檢測,取得屏幕座標,發射射線,取得碰撞信息,比較準確,射線碰到那個有碰撞器的位置,就返回這個位置blog

 

 

Ray ray= mainCamera.ScreenPointToRay(screenPos);

            RaycastHit hit;

            bool ishit=Physics.Raycast(ray,out hit);

            if (ishit)

            {

                Vector3 spacePos = hit.point;

                print("screenPos:" + screenPos);

                print("spacePos:" + spacePos);

 

           }

 

原文連接:https://blog.csdn.net/qq_38806355/article/details/82938553get

相關文章
相關標籤/搜索