因此,我有X and Y game objects
。我有一个矢量Z = X - Y
,用绿线表示。
另外,我有一个Parent
游戏对象,它有一个Child
游戏对象。如何移动父级,使子级游戏对象位于Point Y
我尝试过
Z -= new Vector3(child.localPosition.x, 0, child.localPosition.z);
Parent.transform.position = Z
无法正常工作。 谢谢!
答案 0 :(得分:3)
要向子对象C移动到Y所需的绝对运动是向量Y-C。如果将此绝对运动应用于父对象,则子对象将被移动相同的量,因为子元素会随着他们的父母。因此,您需要将此绝对运动Y-C应用于父级,然后将C置于y位置。
对于对象“ y”和“ Child”的名称,而“ this”是父对象的情况,这就是步骤:
void moveToYGameObject()
{
//total absolute movement you want to move
Vector3 AbsoluteMovement = GameObject.Find("y").transform.position -
GameObject.Find("Child").transform.position;
//add this vector to current parent's (along with child) position
this.transform.position += AbsoluteMovement;
}
也应该在3D上工作,您的对象不必在XZ平面上。 如果问题是“如何移动父级,以使子游戏对象位于Y点”,则x游戏对象和Z向量不会对问题本身产生任何影响,大豆可能会丢失某些东西。
希望有帮助!