C # Unity - Roguelike комната поколения - PullRequest
0 голосов
/ 24 июня 2018

В свободное время я играю в Unity.Я учусь, создавая roguelike.Я довольно новичок в движке Unity.Вот моя проблема, которую я не очень понимаю: я создал префабы, и это хорошо работает.Но позиция каждого немного "выключена".Выглядит как сетка, а не как непрерывная комната.

Вот как это выглядит

Вот код, который я использую для создания этого:

int roomWidth = rnd.Next(7, 14);
    int roomHeight = rnd.Next(10, 16);

    lastRoomHeight = roomHeight;
    lastRoomWidth = roomWidth;


    for(int y = 0; y < roomHeight; y ++)
    {
        for(int x = 0; x < roomWidth; x++)
        {
            GameObject newWall = null;
            if (x == 0 || x == roomWidth - 1 || y == 0 || y == roomHeight - 1)
            {
                if(x == 0 && y == 0 || x == roomWidth-1 && y == 0 || x == 0 && y == roomHeight-1 || x == roomWidth-1 && y == roomHeight-1)
                {
                    newWall = Instantiate(floorTile, new Vector3(x, 1, y), Quaternion.identity);
                }
                else
                {
                    newWall = Instantiate(wallTile, new Vector3(x, 1, y), Quaternion.identity);
                    newWall.transform.parent = this.transform;

                    if (y == roomHeight - 1)
                        newWall.transform.Rotate(new Vector3(0, 180, 0));
                    if (x == 0)
                        newWall.transform.Rotate(new Vector3(0, -270, 0));
                    if (x == roomWidth - 1)
                        newWall.transform.Rotate(new Vector3(0, 270, 0));
                }

            }
            GameObject newTile =  Instantiate(floorTile, new Vector3(x, 0, y), Quaternion.identity);
            newTile.transform.parent = this.transform;
        }
    }

Может быть, кто-то может увидеть, что я делаю неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...