gpt4 book ai didi

c# - Unity3D:相对于 child 移动父游戏对象

转载 作者:太空宇宙 更新时间:2023-11-03 22:31:40 26 4
gpt4 key购买 nike

enter image description here

所以,我有 X 和 Y 游戏对象。我有一个向量 Z = X - Y,用绿线表示。

另外,我有一个 Parent 游戏对象,它有一个 Child 游戏对象。如何移动父对象以使子游戏对象位于 Point Y

我试过了,

                  Z -= new Vector3(child.localPosition.x, 0, child.localPosition.z);
Parent.transform.position = Z

没有按预期工作。谢谢!

最佳答案

您需要应用到您的子对象 C 以移动到 Y 的绝对移动是向量 Y - C。如果您将此绝对移动应用到父对象,子对象将移动相同的量,因为子对象一起移动他们的 parent 。因此,您需要将此绝对运动 Y - C 应用到父级,您将在 y 位置拥有 C。

对于对象名称为“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 向量不会对问题本身产生任何影响,所以我可能会遗漏一些东西。

希望对您有所帮助!

关于c# - Unity3D:相对于 child 移动父游戏对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57331052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com