Принцип работы:
Принцип работы в том, что игрок выбирает то, как хочет избу, внутри или снаружи. Делает он это в главном меню, он выбирает один из режимов и оказывается в локации. Все инструкции представлены в самой игре.
Программы, которые понадобились для работы:
1) Unity.
2) Visual Studio 2019.
Шаг 1:
Открываем Unity и видим пустую сцену:
В данном сегменте Unity вы найдете любые нужные 3D модели, но поиск необходимо осуществлять на английском, так, что переводчик в помощь.
Шаг 2:
Необходимо создать 2 сцены одна, будет отвечать за вид снаружи, а другая соответственно внутри. После необходимо расположить 3D модели на разных сценах, в нашем случае на одной сцене будут модели избы с улицы, а на другой сцене в самой избе.
Модели можно найти в Asset Store либо скачать. Для этого используются такие сайты как:
1) BlandSwap
2) Sketchfab
Может возникнуть проблема конвертации, так как разные авторы сохраняют свои модели в разных форматах, для ее решения необходимо использовать сайт – AnyConv.
Естественно, чтобы ими пользоваться нужно пройти регистрацию, после которой вы сможете использовать все бесплатные ресурсы этих сайтов, которые только найдете.
Потом расставляйте модели под ваш манер.
Реализация вращения камеры:
Реализация началась как не удивительно со скрипта камеры, чтобы реализовать передвижение вокруг избы необходимо взять точку, вокруг которой камера будет крутится, и в объект этой точки поместить камеру. Для камеры нужно создать скрипт, который направлял её на эту точку, отодвигал на нужное расстояние и немного поднимал вверх, и заставлял по нажатию клавиш двигаться, направление на точку сделано встроенной функцией Unity. Для поворота внутри был использован тот же код, но камера находилась прямиком в точке.
Реализация меню:
Принцип работы меню состоит в том, что у нас есть массив страниц (просто GameObject) в который мы записываем все страницы которые у нас есть в меню, так же есть функция ShowPage (string pageName) в которую мы передаём имя страницы и она перебирая этот массив ищет страницу с этим именем, и если она её находит то она перебирает массив страниц и всем ставит SetActive (false) тем самым выключая их, а странице которую мы хотим показать ставит SetActive (true). Так же в меню конечно присутствует обработка нажатия кнопок. При нажатии кнопки 'внутри' оно загружает нужную сцену и включает управление камерой. При нажатии 'снаружи' оно просто скрывает меню и включает управление.
За помощь в реализации благодырочка моему другу Артему!!!