工厂模式建造小怪角色

首先是定义一个工厂的接口

public abstract class ICharacterFactory 
{
    public Transform[] product;
    protected int flag;
    protected enum ENEMY : int
    {
        MianEnemy = 0,
        PigEnemy = 1,
        Boss = 2,
        Xiaoguai2=3
    }
    public abstract void CreatEnemy(GameObject enemy);
}

然后是实现工厂的方法

   public override void CreatEnemy(GameObject enemy)
    {
        ENEMY n =(ENEMY) int.Parse(enemy.name);

        IEnmy BaseEnemy = null;
        switch (n)
        {
            case ENEMY.MianEnemy:
                BaseEnemy = new MianEnemy();
                BaseEnemy.SetGameObject(product[0], enemy);
                BaseEnemy.GetGameObject().AddComponent<SmallMo>();
                break;
               ......
               ......
               ......
        }
    }

这是游戏设计模式进行的写法,所以将敌人的生产集中在了一起,然后通过传参数来进行选择,假如是有着不同种类的敌人,然后不同种类下面又划分了更多的分类的话,可以多实现几个工厂,再进行选择。
其中对人物属性的装配就统一写在了一个脚本里面,这样在进行工厂模式生产的时候,可以简化很多代码,更改的时候也只要在一个专门的脚本里面进行更改就可以。

然后是测试类,也就是生产:

public class CharacterSystem : MonoBehaviour
{
    ICharacterFactory factory = new CharacterFactory();
    public Transform[] pro;
    public GameObject[] mastor;
    public bool kaiguan = true;
    private void Start()
    {
        factory.product = pro;
    }
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.U))
        {
            factory.CreatEnemy(mastor[0]);
          
        }
    }
}

效果就差不多啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值