繁体   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