当该对象跟随另一个3D对象时,如何获得3D对象的2D位置(即z轴应为0)?
到目前为止,我已经尝试了下面的一行代码,但是z轴并未保持为0,因为它跟随着另一个不断波动的对象。有解决方案吗?
public GameObject Car;
public GameObject Icon;
// Update is called once per frame
void Update ()
{
Icon.transform.position = Vector3.MoveTowards(Car.transform.position, Car.transform.position, 0);
}
答案 0 :(得分:1)
Icon.transform.position = Vector3.MoveTowards(Car.transform.position, Car.transform.position, 0);
这绝对没有任何作用...首先,您在相同的位置之间移动,其次是速度= 0
...所以基本上,这等于
Icon.transform.position = Car.transform.position;
您想做的是消除位置矢量的z
分量,例如像
Icon.transform.position = new Vector3(Car.transform.position.x, Car.transform.position.y, 0);
或一个小技巧:您可以将其转换为Vector2
,这使其“忘记”了z
的值。然后使用Vector3
z=0
Icon.transform.position = (Vector2) Car.transform.position;
答案 1 :(得分:1)
您只需将位置放在局部变量中,然后将z设置为0。
public GameObject Car;
public GameObject Icon;
// Update is called once per frame
void Update () {
Vector3 pos3d = Car.transform.position;
pos3d.z = 0;
Icon.transform.position = pos3d;
}