Я пытаюсь уничтожить клонированные префабы, когда они достигают границы по оси x куба. Но при уничтожении первого клона возникает ошибка, и следующий появившийся клон не уничтожается.
Ошибка:
MissingReferenceException: объект типа GameObject был уничтожен, но вы все еще пытаетесь получить к нему доступ. Ваш сценарий должен либо проверить, является ли он нулевым, либо вы не должны уничтожать объект. deploy.Update() (в Assets/deploy.cs:52)
Это скрипт, прикрепленный к кубу:
public class deploy : MonoBehaviour
{
public GameObject starsPrefab;
private GameObject star;
public float respawnTime=40.0f;
Vector3 bsize,bmax,bmin,plane;
// Start is called before the first frame update
void Start()
{
StartCoroutine(starsWave());
Collider bCollider = this.GetComponent<Collider>();
bsize=bCollider.bounds.size;
bmax=bCollider.bounds.max;
bmin=bCollider.bounds.min;
//Vector3 plane=new Vector3(bmax.x-bmin.x,bmax.y-bmin.y,bmax.z-bmin.z);
}
private void spawnStar()
{
star =Instantiate(starsPrefab) as GameObject;
star.transform.position= new Vector2(bsize.x,Random.Range(-bsize.y,bsize.y));
}
IEnumerator starsWave()
{
while (true)
{
spawnStar();
yield return new WaitForSeconds(respawnTime);
}
}
void Update()
{
if(star.transform.position.x<bmin.x)
{
Destroy(star);
}
}
Если я увеличу respawnTime
, произойдет та же ошибка; появляется первый клон, доходит до границы, уничтожается, та же ошибка, потом появляется второй клон, доходит до границы, уничтожается, та же ошибка,&hellip
Кажется, что Destroy() применяется к последней клонированной звезде, как я могу применить это к любой клонированной звезде?
List<GameObject>
вместо одной ссылки? - person derHugo   schedule 25.12.2020