3 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可能未Camera.ScreenToWorldPoint正確調(diào)用該方法。特別是,應(yīng)將傳遞給此方法的屏幕位置參數(shù)的z位置定義為相機(jī)的世界單位。請(qǐng)參閱Camera.ScreenToWorldPoint上的Unity文檔。
相反Camera.main.ScreenToWorldPoint(Input.mousePosition),我認(rèn)為這是正確的調(diào)用方式Camera.ScreenToWorldPoint:
var cameraPosition = Camera.main.transform.position;
// assuming `transform` is the transform "Virtual Screen Quad"...
float zWorldDistanceFromCamera = transform.position.z - cameraPosition.z;
var screenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, zWorldDistanceFromCamera);
var worldPoint = Camera.main.ScreenToWorldPoint(screenPoint);
Debug.LogFormat("mousePosition: {0} | zWorldDistanceFromCamera: {1} | worldPoint: {2}",
? ? ? ? ? ? ? ? Input.mousePosition,
? ? ? ? ? ? ? ? zWorldDistanceFromCamera,
? ? ? ? ? ? ? ? worldPoint.ToString("F3"));
(如果這行不通,您是否可以更新您的問(wèn)題?)
- 3 回答
- 0 關(guān)注
- 461 瀏覽
添加回答
舉報(bào)