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;
}
}
}
如果您有一個對象有效,請嘗試將該對象分配給'public GameObject Power;'這樣您就可以知道其腳本或對象是否不正確。 – Imapler 2014-09-01 09:10:58
是的,那正是我在做的。該gameobject工作,但不是腳本。無論如何,我只是讓這個去添加別的東西而不是pickupables – YehCheez 2014-09-02 09:18:22