使用C#/ Unity3D将值从子级发送到父级?

时间:2019-09-17 16:29:02

标签: c# unity3d inheritance polymorphism

我正在将数据从孩子发送给父母,然后计算步行路径。当我发送数据时,它通过FindPath函数运行并返回值列表。 但是,当更新运行时,WalkTo再次设置为0。为什么不保留新数据?

我已经确认WalkTo不会在两个功能之间的任何位置重置为0。

public class ParentClass : MonoBehaviour
{
    List<Location> WalkTo;

    void Start(){
        WalkTo = new List<Location>();
    }

    public void SetWalk(Vector2 end)
    {
        WalkTo = tools.FindPath(transform.localPosition, end);        
    }

    void Update()
    {
        if (WalkTo.Count > 0)
        {
            //run walking path
            WalkPath();
        }
    }
}

public class ChildClass : ParentClass
{
    void GoHome()
    {        
        SetWalk(cData.HouseLoc)
    }
}

对SetWalk的Child调用将目标点发送到ParentClass。在函数内部,它使用FindPath计算从对象起点到目的地的步行路径。它返回要走的路径的点列表,并将其放入WalkTo。然后,对象应穿过路径。

0 个答案:

没有答案