由于某种原因,我的代码在函数TargetEnemy()的底部不起作用。我尝试从列表中删除null GameObjects,但它们仍然在列表中。为什么不从null中删除GameObjects?
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class TurretController : MonoBehaviour {
public Transform turretBulletSpawn;
public GameObject turretBullet;
public List <GameObject> storedEnemies = new List <GameObject>();
void Start()
{
}
void Update()
{
TargetEnemy();
}
public void OnTriggerEnter (Collider enemyTriggered)
{
if (enemyTriggered.tag == "Enemy")
{
storedEnemies.Add(enemyTriggered.gameObject);
}
}
public void OnTriggerExit (Collider enemyTriggered)
{
storedEnemies.Remove(enemyTriggered.gameObject);
}
void TargetEnemy()
{
for (int i = 0; i < storedEnemies.Count; i++)
{
Quaternion rotate = Quaternion.LookRotation(storedEnemies[i].transform.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotate, Time.deltaTime * 2);
Instantiate (turretBullet, turretBulletSpawn.position, turretBulletSpawn.rotation);
if (storedEnemies[i].gameObject == null)
{
storedEnemies.RemoveAt(i);
}
}
}
}
请不要用标记之类的“紧急”的问题... –
这是不急,这不是JavaScript的。 – 2016-03-07 00:18:32
好吧,你能帮助我,虽然 –