Я уже некоторое время пытаюсь создать пользовательскую форму генерации мира для своей игры на Unity2D, и я застрял на одном ее аспекте. Цель состоит в том, чтобы разместить главную комнату, заблокировать определенные направления, разместить комнаты в незаблокированных зонах, а затем предотвратить блокировку новой комнаты предыдущей комнатой. Когда он выходит из строя, это когда два ответвления основной комнаты пытаются разместить комнату в одном месте. У меня есть код, чтобы уничтожить вторую помещенную комнату, которая работает, но добавление одного из блокировщиков в первую комнату не помогает. Я испробовал несколько разных методов, и, похоже, нынешний способ приблизил меня к успеху. Основной фрагмент кода, который наиболее вероятно вызывает ошибку, находится здесь:
foreach (GameObject room in rooms)
{
if (room != this.gameObject && room.transform.position == transform.position) //Checking if any rooms coincide with this room
{
if (room.gameObject.name == "Outdoor Room")
{
Destroy(this.gameObject);
break;
}
if (room.GetComponent<OutdoorRoom>().dir == "U")
{
Debug.Log("test");
exits += "S";
}
if (room.GetComponent<OutdoorRoom>().dir == "D")
{
Debug.Log("test");
exits += "N";
}
if (room.GetComponent<OutdoorRoom>().dir == "L")
{
Debug.Log("test");
exits += "E";
}
if (room.GetComponent<OutdoorRoom>().dir == "R")
{
Debug.Log("test");
exits += "W";
}
Destroy(room);
}
}
Весь сценарий здесь: https://paste.mod.gg/olewesapik.cs Я могу ответить на любые ваши вопросы по этому поводу. Спасибо, что нашли время ответить.