Хорошо, я делаю простую игровую механику, в которой вы - мяч, катящийся по небольшой панели. По краю панели расположены 8 дочерних объектов. 4 из них - это триггеры на краях панели, а 4 из них - это пустые игровые объекты, расположенные на расстоянии 1 единицы от каждого края панели, где находится следующая префаб панели, в которой будет создаваться. На шаре есть триггер, который определяет местоположение пустых игровых объектов, чтобы сообщить сборной панели, где появиться. Когда мяч входит в определенный триггер из панели, предполагается, что шар создает экземпляр панели в месте, которое я назначаю на основе триггера, в который входит мяч. Вот мой код:
public GameObject panelPrefab;
Transform frontSpawn;
Transform backSpawn;
Transform leftSpawn;
Transform rightSpawn;
private bool allowSpawn;
void Awake()
{
allowSpawn = true;
}
void OnTriggerStay(Collider spawn)
{
if (spawn.gameObject.tag == "FrontSpawn")
{
frontSpawn = spawn.transform;
}
else if (spawn.gameObject.tag == "BackSpawn")
{
backSpawn = spawn.transform;
}
else if (spawn.gameObject.tag == "LeftSpawn")
{
leftSpawn = spawn.transform;
}
else if (spawn.gameObject.tag == "RightSpawn")
{
rightSpawn = spawn.transform;
}
}
void OnTriggerEnter (Collider other)
{
if (other.gameObject.tag == "Front" && allowSpawn == true)
{
Instantiate (panelPrefab, frontSpawn.transform.position, Quaternion.identity);
allowSpawn = false;
}
else if (other.gameObject.tag == "Back" && allowSpawn == true)
{
Instantiate (panelPrefab, backSpawn.transform.position, Quaternion.identity);
allowSpawn = false;
}
else if (other.gameObject.tag == "Left" && allowSpawn == true)
{
Instantiate (panelPrefab, leftSpawn.transform.position, Quaternion.identity);
allowSpawn = false;
}
else if (other.gameObject.tag == "Right" && allowSpawn == true)
{
Instantiate (panelPrefab, rightSpawn.transform.position, Quaternion.identity);
allowSpawn = false;
}
}
void OnTriggerExit (Collider other)
{
allowSpawn = true;
}
Моя проблема связана с каждым из вызовов Instantiate, я получаю исключение NullReferenceException. У меня есть панельPrefab, назначенная в редакторе единства, и я не знаю, что может быть причиной этого! Если кто-нибудь может помочь мне здесь, это было бы ОЧЕНЬ признательно ... Так что заранее спасибо!