簡體   English   中英

Unity C#ScreenToWorldPoint 2D設置對象Z軸

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM