在C#中自身调用方法

我调查了其他类似的帖子,但无法从他们那里找到我真正需要的信息,如果您看到类似的帖子,对不起。

我正在处理一个单游戏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;
        }

如您所见,我试图在自身内部运行该方法,但是,当程序运行时,第一个父级以下的每个子级都不会移动。

谢谢你的帮助

评论
  • 唱征服
    唱征服 回复

    是。这是一种称为递归的标准计算机科学技术。