touchMarkerObjects[fingerId].transform.position = mainCamera.ScreenToWorldPoint(Input.GetTouch(fingerId).position);
当我使用这行代码时,它将touchMarkerObjects Z位置设置为-1308,这使得它无法渲染。相机位于0,0,0并设置为正交。即使我在Vector3中添加一行或尝试仅使用Vector3中的ScreenToWorldPoint的X / Y进行transform.position更改,它仍将值设置为-1308。
如何在不影响Z索引的情况下更新对象位置?
谢谢,我确定这是一个我忽略的相对简单的事情。我希望这是传达问题的最简单方法。
答案 0 :(得分: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;