Unity 3D\2D手机游戏开发:从学习到产品(第3版)
上QQ阅读APP看书,第一时间看更新

2.5 创建敌人

创建敌人的方式与创建主角类似,不过敌人的行为需要由计算机来控制,它将从上方迎着主角缓慢飞出,并左右来回移动。

步骤 01 创建Enemy.cs脚本,添加代码如下:

        [AddComponentMenu("MyGame/Enemy")]
        public class Enemy : MonoBehaviour {

            public float m_speed=1;   // 速度
            public int m_life=10;     // 生命
            protected float m_rotSpeed=30;    // 旋转速度
            void Start () {
              m_transform = this.transform;
            }
            void Update () {
              UpdateMove();
            }
            // 注意,为了将来扩展功能,UpdateMove是一个虚函数,
            protected virtual void UpdateMove()
            {
              // 左右移动
              float rx = Mathf.Sin(Time.time) * Time.deltaTime;
              // 前进
              m_transform.Translate(new Vector3(rx, 0, -m_speed * Time.deltaTime));
            }
        }

UpdateMove函数用来执行敌人的移动,使用了Sin函数使数值在-1~1之间循环变化,敌人在向前飞行的同时,还将左右迂回移动。

步骤 02 在Project窗口中找到Enemy.fbx文件,为其创建Prefab,并指定Enemy脚本作为其组件。

步骤 03 将敌人的Prefab从Project窗口中拖动到场景,然后按Ctrl+D组合键复制多个敌人并摆放在不同的位置。运行游戏,敌人将向前沿弧线来回缓缓移动,如图2-23所示。

图2-23 敌人