Instantiate 動態生成遊戲場景中的物件不一定在開始時立即出現,例如射擊遊戲中發射的子彈或是爆炸效果,都是在特定情況下出現的。 本段教學說明使用 Instantiate 在玩家射擊或碰觸炸彈時動態生成預製物件的方法。 將一個預製物件指定給 myPrefab 變數,遊戲執行時將會動態生成指定的預製物件。
使用 new Vector3 設定座標,可以設定動態生成的位置,以下範例執行時將會在原點生成物件。 宣告一個可輸入座標的變數,以下範例執行時將會在指定的座標位置生成物件。 較為直覺的另一種設定方式,以下範例執行時將會在指定的物件位置生成物件。 若需要生成物件的位置有變化,可以使用 Random.Range( ) 隨機位置動態生成。 使用 for 迴圈動態生成多個預製物件,並且讓每個物件間隔一段距離。 使用 Invoke 調用 3 秒後動態生成預製物件。
使用 InvokeRepeating 重複調用,以下範例為每隔 0.5 秒動態生成一個預製物件。
使用 if 判斷式與 Input.anyKeyDown 按下任意的按鈕時動態生成預製物件。 關於 Input 的使用方法可參閱 Unity 網站 的說明。 使用 if 判斷式與 Input.GetKeyDown 按下指定的按鈕時動態生成預製物件。 關於 KeyCode 的使用方法可參閱 Unity 網站 的說明。
物件碰撞時動態生成爆炸效果,然後刪除碰撞與被碰撞的遊戲物件。 關於 OnCollisionEnter 的使用方法可參閱 Unity 網站 的說明。
爆炸效果可以自行製作或使用 ParticleSystems 的 Explosion 預製物件,拖曳到腳本的 Explosion Prefab 欄位。
|