本文為大家分享了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次圍觀