我有一个复杂的GameObject(即它是许多其他游戏对象的父级),我想覆盖它的位置属性。
例如,参加以下游戏对象
ParentGameObject
-Child1
-Child2
现在我想根据Child2的位置定位ParentGameObject,即当我设置ParentGameObject.transform.position时,它应该重新定位关于Child2的所有元素
将父对象的位置设置为零实际上应该定位Child2,但整个游戏对象应该移动。
答案 0 :(得分:3)
如果我理解正确,这就是你想要的。
将父游戏对象的中心/枢轴移动到其中一个子游戏对象。
Vector3 object2Pos = Object2.transform.position;
int deltaX = object2Pos.x;
int deltaY = object2Pos.y;
int deltaZ = object2Pos.z;
foreach(GameObject childObj in parentGameObject.Children)
{
childObj.transform.position.x -= deltaX;
childObj.transform.position.y -= deltaY;
childObj.transform.position.z -= deltaZ;
}
//Now to bring back all objects where ever they were,
parentGameObject.transform.position.x += deltaX;
parentGameObject.transform.position.y += deltaY;
parentGameObject.transform.position.z += deltaZ;
我不确定确切的语法。我会纠正它,但这是逻辑。