2016-11-27 66 views
1

我幾乎完成了我的遊戲。不過,我想要產生無限的敵人,就像躲避者遊戲一樣。但是,我嘗試了研究,沒有運氣。我怎樣才能做到這一點?這是我需要做的唯一事情來完成我的比賽。統一:敵人代碼

的BlockScript.cs代碼(敵人代碼)如下:

using UnityEngine; 
using System.Collections; 

public class BlockScript : MonoBehaviour { 

    private GameObject wayPoint; 
    private Vector3 wayPointPos; 
    private Rigidbody2D rigidBody2D; 
    public bool inGround = true; 
    private float jumpForce = 400f; 

    private float speed = 6.0f; 
    void Start() { 

     wayPoint = GameObject.Find("wayPoint"); 
    } 

    private void awake() 
    { 
     rigidBody2D = GetComponent<Rigidbody2D>(); 
    } 


    void Update() { 

     if (inGround) 
     { 
      inGround = false; 

      rigidBody2D.AddForce(new Vector2(0f, jumpForce)); 
     } 

     wayPointPos = new Vector3(wayPoint.transform.position.x, transform.position.y, 
      wayPoint.transform.position.z); 

     transform.position = Vector3.MoveTowards(transform.position, 
      wayPointPos, speed * Time.deltaTime); 

     Vector2 min = Camera.main.ViewportToWorldPoint(new Vector2(0, 0)); 

     if(transform.position.y< min.y) 
     { 
      Destroy(gameObject); 
     } 

    } 
} 
+0

歡迎堆棧溢出。你可以改善你的問題。請閱讀[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。當你的代碼沒有任何額外的東西顯示你的確切問題時,你會向志願幫助你的人表示敬意。 您可以通過格式化代碼以提高可讀性並消除滾動來改善您的問題。 – zhon

回答

1

典型的解決方案將是你的敵人(完整的層次結構爲GameObject)存儲在prefab,這樣他們可以重新使用並從代碼實例化。然後,創建一個對你的預製件的引用,並在你看到合適的時候實例化它。例如:

public GameObject EnemyPrefab; // assign this in editor 
(...) 
Instantiate(EnemyPrefab, transform.position, transform.rotation); // creates a new enemy 

你可能會需要從一個單獨的腳本控制這個功能,而不是從敵人腳本本身(例如創建一個專門的EnemySpawner腳本。)

+0

是的,你必須瞭解預製件。 OMG! – Fattie

+0

OMG!有效!非常感謝! –

+0

樂意幫忙! – apk