2.8.1 创建敌人

来源:互联网 发布:济南行知小学是公立 编辑:程序博客网 时间:2024/04/28 13:09

http://book.2cto.com/201410/47220.html




只是一种敌人太单调了,我们将再添加一种新的敌人,它将继承原有敌人的大部分功能,同时又增加一些新的功能。
 
在Project窗口找到Enemy2.fbx模型文件,为其创建Prefab。
 
可以在Project窗口直接将FBX模型拖动到空的Prefab文件上创建敌人的Prefab。
 
打开Enemy.cs脚本,将protected void UpdateMove()改为protected virtual void UpdateMove(),这里添加了一个virtual,使其成为一个虚方法,这样我们可以在派生类中重写这个方法。


创建SuperEnemy.cs脚本,使它的类继承Enemy,并重写UpdateMove方法,新敌人的移动只是简单的缓缓向前,如下所示:using UnityEngine;using System.Collections; [AddComponentMenu("MyGame/SuperEnemy")]public class SuperEnemy : Enemy {     protected override void UpdateMove()    {        // 前进        m_transform.Translate( new Vector3( 0,  0,  -m_speed * Time.deltaTime ) );    }} 在SuperEnemy这个类中,只有UpdateMove()一个方法,这个方法前面使用了override标识符,表示这是一个重写的方法。虽然SuperEnemy这个类没有其他东西,但它继承了Enemy类的其他全部功能。

选择新敌人的prefab,将SuperEnemy脚本指定给它作为组件。
 
在Inspector窗口设置新敌人的SuperEnemy组件,增加生命至50。
 
为新敌人的prefab添加Rigidbody和Box Collider组件,并参考原有敌人的设置进行设置。因为这个新敌人的模型比较大,用立方体碰撞体会显得很不精确,我们可以将碰撞体缩小一些,如图2-28所示。如果我们希望使用精度较高的碰撞体,最好在3D软件中将其建模出来,然后将其设为Mesh碰撞体。
 
将新敌人的Tag设为Enemy。

0 0
原创粉丝点击