Unity3D基础知识 加入小组

34个成员 32个话题 创建时间:2015-09-16

Unity3d项目实战——飞机大战(五)

发表于2015-10-13 3336次查看

接下来我们创建简单的敌人,不能发射子弹,只能左右旋转沿弧线前进,跟前面创建子弹一样,我们找到Enemy.fbx文件拖到Hierarchy中,然后创建敌人Prefab,并命名为Enemy,如下图:

然后我们创建cs脚本,命名为Enemy,代码如下:

sing System.Collections;  

  1.   
  2.   
  3. [AddComponentMenu("MyGame/Enemy")]  
  4.   
  5. public class Enemy : MonoBehaviour {  
  6.   
  7.     //速度  
  8.     public float m_speed=1;  
  9.     //旋转速度  
  10.     protected float m_rotspeed=30;  
  11.     //变相间隔时间  
  12.     protected float m_timer=1.5f;  
  13.     //生命  
  14.     public float m_life = 10;  
  15.   
  16.     protected Transform m_transform;  
  17.   
  18.     public int m_point=10;  
  19.   
  20.     // Use this for initialization  
  21.     void Start ()   
  22.     {  
  23.   
  24.         m_transform = this.transform;  
  25.       
  26.     }  
  27.       
  28.     // Update is called once per frame  
  29.     void Update ()   
  30.     {  
  31.   
  32.         UpdateMove ();  
  33.   
  34.       
  35.     }  
  36.   
  37.   
  38.     protected virtual void UpdateMove()  
  39.     {  
  40.   
  41.         m_timer -= Time.deltaTime;  
  42.   
  43.   
  44.         if (m_timer <= 0)  
  45.         {  
  46.           
  47.             m_timer=3;  
  48.   
  49.           
  50.             m_rotspeed=-m_rotspeed;  
  51.   
  52.           
  53.         }  
  54.   
  55.         //旋转方向  
  56.         m_transform.Rotate (Vector3.up, m_rotspeed * Time.deltaTime, Space.World);  
  57.   
  58.         m_transform.Translate (new Vector3 (0, 0, -m_speed * Time.deltaTime));  
  59.     }  
  60.   
  61. }  

这里我们每隔3秒改变敌人一次旋转方向,我们把脚本挂到敌人prefab上,运行如下图:

 

不过现在飞船发射子弹也打不到敌人,飞船跟敌人之间也没任何交互,这里没有任何碰撞检测,所以接下来,我们添加物理碰撞,我们先给敌人添加碰撞体跟刚体,所有需要参与物理计算的游戏体都需要有一个刚体组件才能正常工作,

 

然后box Collider属性中,我们选中Is Trigger,使其具有触发作用,在rigidbody组件中,取消选中Use Gravity去掉重力影响,然后选中Is Kinematic使游戏体的运动不受物理模拟影响,如下图:

然后参考前面的方法给主角飞船跟子弹都添加物理组件,

最后,为了区别到这些组件,我们给它们设置Tag标示,选择Edit->Project Settings->Tag and Layers,

我们设置如下tag,

发表回复
你还没有登录,请先 登录或 注册!