[英]Unity C# ScreenToWorldPoint 2D setting object Z axis
touchMarkerObjects[fingerId].transform.position = mainCamera.ScreenToWorldPoint(Input.GetTouch(fingerId).position);
當我使用此行代碼時,會將touchMarkerObjects Z位置設置為-1308,這使其無法呈現。 相機位於0,0,0並設置為“正交”。 即使我在Vector3之后添加一行或嘗試僅將ScreenToWorldPoint的X / Y用於transform.position更改,它仍會將值設置為-1308。
如何在不影響Z索引的情況下使用它來更新對象位置?
謝謝,我確定這是我所忽略的相對簡單的事情。 我希望這是解決問題的最簡單方法。
開始時,獲取GameObject的默認z
軸。 保存mainCamera.ScreenToWorldPoint(Input.GetTouch(fingerId).position);
到一個臨時變量。 在使用結果之前,請使用該原始/默認變量覆蓋結果的z軸。 如果您的GameObjects的z軸為0
,則簡單地用0
覆蓋它。
float defaultZ = 0f;
要么
float defaultZ = touchMarkerObjects[...].transform.position.z;
然后
Vector3 tempValue = mainCamera.ScreenToWorldPoint(Input.GetTouch(fingerId).position);
tempValue.z = defaultZ;
touchMarkerObjects[fingerId].transform.position = tempValue;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.