2014-08-31 43 views
0

我正在製作一款FPS遊戲。它具有提升玩家健康的皮卡(果汁/能量)。 現在我可以使用單個多維數據集(僅使用一個多維數據集進行測試)來完成此任務。 OnTriggerEnter的作用就像一個魅力,它增加了球員的健康以及維持健康吧。 但是,當我實例化它時,派生立方體的觸發器不起作用。產生的物體不觸發Unity3D

我在下面添加了我的「Spawner」和「HealthIncrease」腳本。哦,是的,我已經加入了剛體/盒子碰撞器的一切。

這是我的產卵腳本(我這增加了多空博弈的對象)

public class Spawner: MonoBehaviour { 

    public GameObject Power; 
    public GameObject player; 
    public float spawnOffset=3.0f; 
    public float spawnDelay = 5; 
    int currentPowerUpCount; 
    int currentWaveNumber =1; 

    Vector3 randomSpawnPoint{ 
     get{ 

      int randIndex = UnityEngine.Random.Range(0, transform.childCount-1); 
      var position = transform.GetChild(randIndex).position + UnityEngine.Random.insideUnitSphere * spawnOffset; 
      position.y =0; 
      return position; 

     } 

    } 
    void Start(){ 
     currentPowerUpCount = currentWaveNumber * 3; 
     Spawn(); 

    } 

    void Update(){ 
     CheckifReadySpawn(); 
    } 


    void Spawn() 
    { 
     Debug.Log ("spawm" + currentWaveNumber); 
     for (int i = 0; i < 10; i++) { 
      var enemyGameobject = (GameObject)Instantiate (Power, randomSpawnPoint, Quaternion.identity); 

     } 
    } 

    void CheckifReadySpawn() 
    { 
     if (currentPowerUpCount <= 0) { 
      currentWaveNumber++; 
      currentPowerUpCount = currentWaveNumber * 5; 

      Invoke ("Spawn", spawnDelay); 
     } 
    } 



} 

這是HealthIncrease(我將其添加到立方體)

public class HealthIncrease : MonoBehaviour { 

    public UISlider healthBar; 
    public GameObject player; 
    // Use this for initialization 
    void Start() { 

    } 

    // Update is called once per frame 
    void OnTriggerEnter (Collider collider) { 

    if (collider.CompareTag("Player")) 
     PickItUp(); 


    } 

    void PickItUp() 
    { 
     var playerStats = (Stats)player.GetComponent<Stats>(); 
     if (playerStats.health >= 500) { 
      return; 
     } 
     else { 
      playerStats.health += 50; 
      Destroy (this.gameObject); 
      healthBar.value = playerStats.health/500; 
     } 
    } 


} 
+0

如果您有一個對象有效,請嘗試將該對象分配給'public GameObject Power;'這樣您就可以知道其腳本或對象是否不正確。 – Imapler 2014-09-01 09:10:58

+0

是的,那正是我在做的。該gameobject工作,但不是腳本。無論如何,我只是讓這個去添加別的東西而不是pickupables – YehCheez 2014-09-02 09:18:22

回答

0

我猜測拾音器的預製件上沒有碰撞器。注意:對於碰撞工作,至少有一個物體需要有一個剛體,並且都需要碰撞器。