UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 3
Доброго времени, товарищи! Прошло некоторое время с того момента как я начал учить Unity и вот, что я на данный момент знаю и понимаю. Это офигеть как трудно, но неимоверно увлекательно!
Итак, напомню что я там хотел (требования к игре):
1. Большой мир (80-100 систем).
2. Каждый уровень (звездная система) хранит своё состояние.
3. RPG система для юнитов. (уровень, экипировка, инвентарь). Квесты, события, песочница, сюжет, торговля.
4. RTS управление (перемещение в 3-х мерном пространстве). Захват систем, кол-во юнитов в сражении как в Homeworld2, Star Wolves 3: Civil War.
5.
6. Игра однопользовательская, для Windows. (Steam)
Что из этого удалось реализовать и на какой стадии оно всё находится? Для начала расскажу вам о настройках проекта:
1. Версия UnityEngine 2022.3.62f1 LTS. Тип проекта: 3D. Built-In Render Pipeline.
2. Сразу после создания переходим в Project Manager и выполняем в таком порядке: обновляем пакеты в In Project, потом устанавливаем новые пакеты в таком порядке - Addressables, 2D Sprite, AI Navigation, Cinemachine, Localization, Input System и перезапускаем редактор для вступления изменений необходимых для Input System.
3. После перезагрузки переходим в Window -> Asset Management -> Addressables -> Groups. В появившемся окне -> Create Addressables Settings. Я пока что разделил для себя ассеты в такие группы: Prefab_Camera, Prefab_Lights, Prefab_MainMenu, Prefab_PauseMenu, Prefab_UI, Prefab_GameObjects, Asset_Audio, Asset_Sound, Asset_Music, Asset_Image, Asset_Material, Asset_Skybox, Asset_Fonts, Asset_Localization, VFXSFX, Core. Возможно потом я пересмотрю подход к групперовке.
4. Далее создаём папку для Localization. Переходим Project Settings -> Localization и создаём настройки локализации - Localization Settings в созданной ранее папке. Потом в обновившемся окне Project Settings -> Localization - добавим локали Add Locales. Я выбрал - EN, RU, и сохраняем их в Localization/Locales.
6. Теперь создаём таблицы для локализации Window- > Asset Management и в появившемя окне в левом верхнем углу -> New Table Collection. В появившемся окне Name -> MainMenu и нажимаем Create. Сохраняем по адресу: Localizatino/Tables. Закрываем пока это окно.
5. Переходим в Project Settings - Player. Вводим название своей компании согласно вашей форме предпринимательства ))).( Я пока не менял Project Settings - Player -> Active Input Handling и оставил его в значении Both.)
6.Переходим в Project Settings - Text Mesh Pro и устанавливаем необходимый минимум - Import TMP Essentials.
7. Создаём папку - Inputs. Переходим в Project Settings -> Input System Package и создаём действия для всего проекта - Create and assign a default project-wide Action Settings и перемещаем их в папку.
8. Переходим в Project Settings -> Input System -> Settings и создаём Settings Asset. В обновившемся окне - Supported Devices -> добавляем Mouse и Keyboard.
8. Возвращаемся в Project Settings - Input System Package и создаём несколько Action Maps: Gameplay_RTS, MainMenu, PauseMenu, Dialogue, Management и Gameplay_DirectControl (я пока остановился на таких).Чуть позже - подробнее о настройках.
Для Menu: Переименовать New Action ->LMB_Click и в уго Binding -> Path -> Left Button [Mouse] и чуть ниже в Use In Control scheme - тут и далее везде ставим галочку Keyboard&Mouse.
9. Создаём папки для импортируемых ассетов: UI/Image/Texture, UI/Image/Icon, UI/Fonts, UI/Selection, Audio/Sound, Audio/Music, Skyboxes, Prefab/GameObjects, Prefab/UI, Prefab/Core. Потом заполним ассетами. Едем дальше.
10. Папке Scenes: Переименовать Sample Scene в MainMenu, потом добавить сцены Bootstrap, Gameplay и UI.
11. Создать папку Scripts. В папке создать Assembly Definition (MainAssemblyDefinition). В инспекторе при выбранном свежесозданном assembly definition: Namespace -> (название вашей игры или как вам заблагорассудится) и чуть ниже - Assembly Definition References -> Add и добавляем следующее:
com.unity.cinemachine; InputSystemForUI; Unity.Addressables; Unity.AI.Navigation; Unity.InputSystem; Unity.Localization; Unity.ResourceManager; Unity.TextMeshPro; UnityEngine.UI
12. Теперь перейдем на сцену Bootstrap удалим все объекты, создаём пустой объект Hierarchy -> RMB -> Create Empty, и переименвываем его в Bootstrap.
13. File -> Build Settings -> и перетащили Bootstarp Scene из папки Scenes в Scenes in Build.
14. В папке Scripts создайте новый скрипт с именем Bootstrap и прикрепите его к объекту на сцене.
15. File -> Save и Save Project. ВСЁ! Вот и закончили первоначальную настройку проекта.
В следующем посте: ассеты, скрипты.