Unity3D中的组合模式

落花浮王杯 提交于 2019-11-27 07:19:28

1、建立节点抽象基类。

using System.Collections.Generic;

public abstract class DMComponent
{
    public List<DMComponent> componentSonList;

    protected string mName;

    public string Name
    {
        get
        {
            return mName;
        }
    }

    public DMComponent(string name)
    {
        mName = name;
    }

    public abstract void AddComponent(DMComponent component);

    public abstract void RemoveComponent(DMComponent component);

    public abstract DMComponent GetComponent(int index);

}

2、建立叶子节点类。

public class DMLeaf : DMComponent
{
    public DMLeaf(string name) : base(name) { }

    public override void AddComponent(DMComponent component) { return; }

    public override DMComponent GetComponent(int index) { return null; }

    public override void RemoveComponent(DMComponent component) { return; }
}

3、建立分叉节点类

public class DMComposite : DMComponent
{
    public DMComposite(string name) : base(name) { }

    public override void AddComponent(DMComponent component)
    {
        componentSonList.Add(component);
    }

    public override DMComponent GetComponent(int index)
    {
        return componentSonList[index];
    }

    public override void RemoveComponent(DMComponent component)
    {
        componentSonList.Remove(component);
    }
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!