unity2D:敌人脚本的父类

注:本篇为本人的学习笔记,所以有的地方估计只有本人能看懂,详情见b站up:Michael-studio

版本信息:unity2020.3

为什么要写敌人脚本的父类?

想象一下,敌人会有很多种,但是他们都统一的拥有一些特征,比如

都会死亡

都会发出某种声音(被打中,死亡等

但是在一些细微的地方又有不同,比如老鹰是飞翔的,而青蛙是跳跃的,那么为了省略相同的那些部分,我们可以写一个父类,让父类包含这些相同的部分,具体的enemy再从该父类上继承,以此来减少代码量。

比如一个Enemy的父类可以简单的写成(结构看懂即可

public class Enemy : MonoBehaviour

{

    protected Animator anim;//动画 protected表示子类可以使用

    protected AudioSource deathAudio;//音频

    protected virtual void Start()//注意这里的Start 写法 virtual表示虚函数,子类中可以更改

    {

        anim=GetComponent<Animator>();

        deathAudio=GetComponent<AudioSource>();

    }

    public void death()

    {

       .....

    }

    public void JumpOn()

    {

        .....

    }

}

 具体的enemy只需要继承Enemy父类即可,比如:

   public class Enemy_Frog : Enemy

  {   
         protected override void Start()

    {

        base.Start();

        .......

    }

}

另外,当不知道具体是那个字类,只知道是某一大类时,创建实体对象的时候不需要精确到Enemy_Forg 只需要 Enemy即可,举个例子

            Enemy ene=other.gameObject.GetComponent<Enemy>();

            if(Anim.GetBool("falling"))

            {

                ene.JumpOn();

                        ....

            }

一个实用小技巧

比如你现在已经做好了一个敌人,是一只青蛙,但是你现在还要再做一个老鹰的敌人,除了需要继承父类写一个Eagle的脚本之外,肯定是要在heirachy中新建一个Eagle object的,那么除了某些component和青蛙不同之外,两者之间有部分component是可以共用的,这时候你再从新给eagle添加这些重复的部分就很麻烦,可以这样

copy你需要的component(三个点

然后呢 随便点一个component的三个点选择如下,就可以复制黏贴组件了,very方便

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Karon_NeverAlone

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值