2016-09-28 132 views
0
touchMarkerObjects[fingerId].transform.position = mainCamera.ScreenToWorldPoint(Input.GetTouch(fingerId).position); 

當我使用這行代碼時,它將touchMarkerObjects Z位置設置爲-1308,這使得它不呈現。相機處於0,0,0並設置爲正交。即使我添加一行後,或者嘗試僅使用Vector3中的ScreenToWorldPoint的X/Y作爲transform.position更改,它仍將值設置爲-1308。Unity C#ScreenToWorldPoint 2D設置對象Z軸

我應該如何使用它來更新對象位置而不會影響Z索引?

謝謝,我敢肯定,這是一個相對簡單的事情,我忽略了。我希望這是轉達問題的最簡單方法。

回答

0

開始時,獲取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; 
+0

非常感謝,這就是我一直在尋找。我寫了一些代碼,以便更早地默認Z值,並肯定會搞砸一些東西。 我很感激,只是其中一個問題沒有突出給我。 – Matt