我调查了其他类似的帖子,但无法从他们那里找到我真正需要的信息,如果您看到类似的帖子,对不起。
我正在处理一个单游戏GameObject类,并正在实现一个用于父级和子级GameObjects的系统,但是当前的设计仅迭代层次结构的一个级别,例如,如果Parent是I,则其子级J会随之移动,但是J会孩子Q不动。
为了解决这个问题,我想知道是否有可能在自身内部调用相同的方法
这是移动父/子对象的示例代码
public void Transform(Vector2 newPosition)
{
if (children.Count != 0)
{
foreach (GameObject i in children)
{
Vector2 diff = new Vector2(-(position.X - newPosition.X), -(position.Y - newPosition.Y));
i.position = i.position + diff;
i.Transform(new Vector2(i.position.X, i.position.Y));
}
}
position.X = newPosition.X;
position.Y = newPosition.Y;
}
如您所见,我试图在自身内部运行该方法,但是,当程序运行时,第一个父级以下的每个子级都不会移动。
谢谢你的帮助
是。这是一种称为递归的标准计算机科学技术。