unity2D:敌人脚本的父类 您所在的位置:网站首页 老鹰的敌人 unity2D:敌人脚本的父类

unity2D:敌人脚本的父类

2024-07-02 16:39| 来源: 网络整理| 查看: 265

注:本篇为本人的学习笔记,所以有的地方估计只有本人能看懂,详情见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();

        deathAudio=GetComponent();

    }

    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();

            if(Anim.GetBool("falling"))

            {

                ene.JumpOn();

                        ....

            }

一个实用小技巧

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

copy你需要的component(三个点

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

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有