歡迎您光臨本站 註冊首頁

Unity3D實現飛機大戰遊戲(2)

←手機掃碼閱讀     月球人 @ 2020-06-22 , reply:0

本文為大家分享了Unity3D飛機大戰遊戲第一部分的實現代碼,供大家參考,具體內容如下

讓飛機可以發射子彈

準備工作:

1、將子彈設置成預製體
 2、在飛機下新建一個子物體Gun

3、調整好位置以後,將子彈設置成預製體

  //發射子彈的速率  public float rate = 0.2f;  public GameObject bullet;//子彈的類型  //發射子彈的方法  public void fire()   {    //初始化一個子彈預製體    GameObject.Instantiate(bullet, transform.position, Quaternion.identity);   }     public void openFire(){    //每隔多長時間使用發射子彈的方法    InvokeRepeating("fire", 0, rate);   }   //ctrl+shift+m添加生命週期函數   private void Start()   {    openFire();   }

 

敵機的製作與運動

1.將敵機放入到遊戲場景當中,給敵機添加腳本
 2.敵機應當擁有自己的血量和速度,且向下移動
 3.當敵機在遊戲界面外後,銷燬敵機
 

  //默認血量  public int hp = 1;  //默認速度  public float speed = 2;   // Update is called once per frame   void Update()   {    //飛機向下移動    this.transform.Translate(Vector3.down*speed*Time.deltaTime);     if (this.transform.position.y <= -5.6f)    {     Destroy(this.gameObject);    }   }

 

獎勵物品

  public int type;//表示子彈的類型   public float speed = 1.5f;//獎勵物品下落速度  // Update is called once per frame  void Update()   {//讓其進行下降    this.transform.Translate(Vector3.down * speed * Time.deltaTime);    //如果出了遊戲邊界區域以後銷燬    if (this.transform.position.y <= -4.5f)    {     Destroy(this.gameObject);    }   }

 

隨機生成子彈和敵機

1.在遊戲場景上方新建一個空物體,讓其位置處生成敵機和獎勵物品,將其移到屏幕外
 2.將敵機和獎勵物品設置為預製體Prefabs

  //第0號敵機  public GameObject enemy0Prefab;  //第1號敵機  public GameObject enemy1Prefab;  //第二號敵機  public GameObject enemy2Prefab;  //獎勵物品的預製體  public GameObject award0Prefab;  public GameObject award1Prefab;  //敵機生成的速率  public float enemy0Rate=0.5f;  public float enemy1Rate = 5f;  public float enemy2Rate = 8f;  //獎勵物品生成的速率  public float award0Rate = 7f;  public float award1Rate = 10f;   // Start is called before the first frame update   void Start()   {    InvokeRepeating("creatEnemy0", 1, enemy0Rate);    InvokeRepeating("creatEnemy1", 5, enemy1Rate);    InvokeRepeating("creatEnemy2", 8, enemy2Rate);    InvokeRepeating("creatAward0", 15, award0Rate);    InvokeRepeating("creatAward1", 18, award1Rate);   }   //生成第0號敵機   //位置信息的x信息應當要隨機生成   public void creatEnemy0()   {    float x = Random.Range(-2.15f, 2.15f);    Instantiate(enemy0Prefab, new Vector3(x,transform.position.y,0), Quaternion.identity);   }     public void creatEnemy1()   {    float x = Random.Range(-2f, 2f);    Instantiate(enemy1Prefab, new Vector3(x, transform.position.y, 0), Quaternion.identity);   }   public void creatEnemy2()   {    float x = Random.Range(-1.5f, 1.5f);    Instantiate(enemy2Prefab, new Vector3(x, transform.position.y, 0), Quaternion.identity);   }   public void creatAward0()   {    float x = Random.Range(-2f, 2f);    Instantiate(award0Prefab, new Vector3(x, transform.position.y, 0), Quaternion.identity);   }   public void creatAward1()   {    float x = Random.Range(-2f, 2f);    Instantiate(award1Prefab, new Vector3(x, transform.position.y, 0), Quaternion.identity);   }

 


[月球人 ] Unity3D實現飛機大戰遊戲(2)已經有256次圍觀

http://coctec.com/docs/program/show-post-239410.html