Пятница, 29 Марта 2024, 11:38

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Расположение объектов в сетке.
Расположение объектов в сетке.
NecrolichДата: Воскресенье, 06 Декабря 2015, 12:20 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Сейчас пытаюсь сделать лабиринт.Сделал двумерный массив, но тут возникли вопросы. Как поместить объекты в этой сетке?
8Observer8Дата: Воскресенье, 06 Декабря 2015, 14:37 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Сделайте префабы и раставьте во вложенном цикле.

Сообщение отредактировал 8Observer8 - Воскресенье, 06 Декабря 2015, 17:24
NecrolichДата: Воскресенье, 06 Декабря 2015, 14:51 | Сообщение # 3
почетный гость
Сейчас нет на сайте
8Observer8, Наверно я не совсем точно задал вопрос.Я засуну префаб, но вот как быть с его "появлением" т.е как узнать его ширину и высоту, что бы потом выстроить размер сетки?
8Observer8Дата: Понедельник, 07 Декабря 2015, 16:13 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Я сделал пример для демонстрации своей идеи.

Похож ли мой лабиринт, на то что вам нужно?

unitypackage

Screenshot:



Добавлено (07 декабря 2015, 16:13)
---------------------------------------------
В общем, смысл моей идеи такой. Есть 4 префаба:



Есть двумерный массив лабиринта:
Код

        int[,] maze = new int[10, 10]
        {
        {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
        {1, 0, 1, 3, 1, 3, 0, 1, 4, 1},
        {1, 0, 1, 0, 1, 1, 0, 1, 0, 1},
        {1, 0, 0, 0, 0, 1, 0, 0, 0, 1},
        {1, 1, 1, 1, 0, 1, 1, 1, 0, 1},
        {1, 0, 0, 0, 0, 0, 0, 0, 0, 1},
        {1, 4, 1, 0, 1, 1, 1, 1, 0, 1},
        {1, 4, 1, 0, 1, 2, 1, 4, 0, 1},
        {1, 4, 1, 0, 1, 0, 0, 0, 0, 1},
        {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
        };


Здесь:
- 0 - пусто
- 1 - блок стены
- 2 - пластиковый шар
- 3 - отражающий шар
- 4 - игральная кость

Во вложенном цикле for я пробегаюсь по двумерному массиву и инстанцирую объекты:

Код

        for (int i = 0; i < maze.GetLength(0); ++i)
        {
            for (int j = 0; j < maze.GetLength(1); ++j)
            {
                if (maze[i, j] == 1)
                {
                    Instantiate(wallPrefab, new Vector3(i, 0, j), wallPrefab.transform.rotation);
                }
                else if (maze[i, j] == 2)
                {
                    Instantiate(plasticSpherePrefab, new Vector3(i, 0, j), plasticSpherePrefab.transform.rotation);
                }
                else if (maze[i, j] == 3)
                {
                    Instantiate(goldSpherePrefab, new Vector3(i, 0, j), goldSpherePrefab.transform.rotation);
                }
                else if (maze[i, j] == 4)
                {
                    Instantiate(dicePrefab, new Vector3(i, 0, j), dicePrefab.transform.rotation);
                }
            }
        }


Вот весь скрипт:


Сообщение отредактировал 8Observer8 - Понедельник, 07 Декабря 2015, 16:14
NecrolichДата: Пятница, 11 Декабря 2015, 22:34 | Сообщение # 5
почетный гость
Сейчас нет на сайте
8Observer8, Лабиринт хорош, но у меня проблема с именно размерами объекта. Т.е в этом примере размер объекта -1, а у меня проблема именно с подгонкой размера.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Расположение объектов в сетке.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг