Я делаю 2D-игру, в которой мяч продолжает создаваться красным, зеленым, синим или желтым цветом. Есть квадратное весло со всеми 4 цветами. если мяч попадает в тот же цвет, он должен уничтожить себя. Я сделал скрипт для создания экземпляра объекта.
Это тот сценарий:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ballSpawn : MonoBehaviour {
public GameObject ball;
public Transform ballSpawnTransform;
private float startTime = 2f;
private float repeatRate = 2f;
// Use this for initialization
void Start () {
InvokeRepeating ("BallSpawn", startTime, repeatRate);
}
// Update is called once per frame
void Update () {
}
public void BallSpawn(){
ball = Instantiate (ball, ballSpawnTransform.position, ballSpawnTransform.rotation);
}
}
Я прикрепил метод смены цвета и метод уничтожения с префабом. скрипт для этого приведен ниже: -
public class ball_controller : MonoBehaviour {
[SerializeField]
public int colorInt;
Rigidbody2D rb;
// Use this for initialization
void Start () {
//rb = this.gameObject;
colorInt = Random.Range (1, 5);
switch (colorInt) {
case 1:
gameObject.GetComponent<Renderer> ().material.color = Color.red;
break;
case 2:
gameObject.GetComponent<Renderer> ().material.color = Color.green;
break;
case 3:
gameObject.GetComponent<Renderer> ().material.color = Color.blue;
break;
case 4:
gameObject.GetComponent<Renderer> ().material.color = Color.yellow;
break;
}
rb = this.gameObject.GetComponent<Rigidbody2D> ();
rb.velocity = new Vector3 (0f, -5f, 0f);
}
// Update is called once per frame
void Update () {
}
void OnTriggerEnter2D(Collider2D hit){
if (hit.gameObject.GetComponent<Renderer> ().material.color == gameObject.GetComponent<Renderer> ().material.color) {
Destroy (this.gameObject);
} else {
DestroyObject (this.gameObject);
}
}
}
но когда это уничтожает игровой объект. Это дает следующую ошибку.
"MissingReferenceException: объект типа 'GameObject' был
уничтожен, но вы все еще пытаетесь получить к нему доступ. Ваш сценарий должен
либо проверьте, является ли он нулевым, либо не следует уничтожать объект. "
Он больше не создает шары и продолжает выдавать эту ошибку за каждый шар, который должен был начаться. Я хочу, чтобы мой скрипт продолжал создавать экземпляры клонов.