Мировое пространство | World Space

Из манула Screen и Viewport | Разделение между “физическим экраном” и “областью, в которой рисуется игра” мы можем сделать вывод:
игровые объекты не расположены на экране, они существуют в игровом мире, который проецируется на экран камерой”.

Screen только отображает результат рендера, игровые объекты не могут быть “на экране”, так же, как человек не живёт в телевизоре.

Viewport — это окно отображения, а не место жизни объектов.
Игровые объекты не находятся в viewport, viewport — это куда камера их проецирует.

Объекты находятся в мировом пространстве, которое камера может или не может отображать на экран.


Что такое мировое пространство?

Мировое пространство (World Space) — это абстрактная, математическая система координат, в которой реально существуют все игровые объекты, независимо от экрана, камеры и устройства.

Мировое пространство — это:

  • единая система координат игры
  • общий “контейнер” для всех объектов
  • пространство, которое не зависит от экрана

В таком случае:

  • мир может быть больше экрана
  • может быть бесконечным
  • может быть меньше экрана
  • камера — это просто “глаз”, смотрящий в мир

Получить и изменить позицию игрового объекта можно с помощью:

  • go.get_world_position()
  • go.set_position() — задаёт локальную позицию объекта, которая совпадает с мировой, если у объекта нет родителя.

World Space — это сцена. Всё остальное — это то, что происходит с объектами на этой сцене.

Допустим, у нас есть игровой объект в коллекции:

Для того, чтобы узнать координаты игрового объекта в World Space, введём такй код:

function init(self)
	print("World position (get_position): " .. go.get_position())
	print("World position: (get_world_position)" .. go.get_world_position())
end

Запустим проект (ctrl + B) и увидим в консоли:


Как видно из отладки в консоли, позиции игрового объекта соответствуют позиции игрового объекта в редакторе Defold:

Вас может смутить, зачем для одного действия существует две команды.
В последующих учебных материалах вам станет мы об этом поговорим, а пока, я, надеюсь, вы запомнили ключевую мысль:

Мировое пространство — это математическая модель игрового мира, в которой живут объекты и работает логика, независимо от того, видит их игрок или нет.

Следующая тема: