Unity

Установка
 Установить Unity Hub
 Переназначить папку хранения Unity x.x.x в  Unity Hub
 Найти в архиве Unity 2019.3.12
 Автоматическая установка IDE Microsoft Visual Studio x Community


Создание Приложения для платформ
1. PC
2. Android

Java-машина предоставит доступ к запрашиваемым системным функциям, описываемым в манифест

android
:name="android.permission.INTERNET"
{
Доступ в интернет
}
android:name="android.permission.RECORD_AUDIO"{
Запись звука с микрофона
}

Закачивание{
Отмена закачивания если файл закачан или использовать новый режим закачивания (куски).
Закачивание происходит сразу на все устройства один раз
}
Запуск стороннего приложения{
}
Плагины Android{
http://www.lorenzonuvoletta.com/how-to-create-a-native-android-plugin-for-unity/
}

ссылки{
task
}
Актуальность{
Unity 2019.2.13f и OculusIntegration_1.42.0
или обновить до более новых версий
}
Шлем
{
Цикл Работы{
getVideos
downloadVideo
play
pause
seek
stop
delete
}
Задачи{
проанализировать приходящий pong от сервера
добавить комнату для 180 (заготовка есть)
}
Отследить критически возможные проблемы{
вылет программы при закачке
вылет программы при работе
отслеживание соединения с сервером
}
Важные проблемы{
освещение стен в кинотеатре очень тёмное
зависание указки при переходе между сценами
тестирование закачивания и удаления
не создаётся иконка для телефона{проблема в плагине для очков}
шкала перемотки не работает для указки
}
Модификация{
тестирование цикла работы
проанализировать работу панорамы в различных вариантах
}
Дополнительно{
запустить постороннее приложение (написан код по JAVA)
}
проблемы{
черный экран для телефона (нет пока общего apk одновременно как для шлема и телефона)
}
Решённые{
выводится текст Text от кэлбека один раз (тогда как Debug выводит все в самом кэлбеке){удаление последних нулевых символов "0" в пришедшем сообщении}
видео высокого разрешения не показывает или нет 360 (проигрывало для заложенных в apk){настроить проект по актуальности}
данные для пинга не получает из основного потока{перенос вызываемого потока в событие Update для MonoBehavior}
не получает значение duration файла mp4 для команды getvideos{Пропущен "слеш" для android папки}
цикл "удаление" не выполняется{Пропущен "слеш" для android папки}
пропадает указка {контейнер Slider мешает работе или контейнер EventSystem не имел компонента  OVRInputModule связанной с указкой}
при обновлении вылезает ошибка Librar\PackageCache\...{был обновлён код более новой версией Unity.Обновить Unity и используемый плагин Oculus.}
}
ошибки при компиляции{
Failed {
удалить папку приложения \VR-Headset\Внутренний общий накопитель\Android\data\project
Failed to load 'archive:/CAB-329d306408a99e451ab5e20e06159de3/CAB-329d306408a99e451ab5e20e06159de3' because it was serialized with a newer version of Unity. (Has a higher SerializedFile version)
UnityEngine.AssetBundle:LoadFromFile(String)
OVRBundleManager:TransferSceneBundles(OVRADBTool, String, String) (at Assets/Oculus/VR/Editor/OVRBundleManager.cs:403)
OVRBundleManager:DeploySceneBundles(List`1) (at Assets/Oculus/VR/Editor/OVRBundleManager.cs:346)
OVRBundleManager:BuildDeployScenes(List`1, Boolean) (at Assets/Oculus/VR/Editor/OVRBundleManager.cs:185)
}
не влияют на работу{
EndLayoutGroup: BeginLayoutGroup must be called first.
UnityEditor.EditorGUILayout:EndHorizontal()
OVRBundleTool:OnGUI() (at Assets/Oculus/VR/Editor/OVRBundleTool.cs:230)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
}
}
}

Подкатегории

  1. класс создаётся в виде скрипта
  2. все классы хранятся в файле формата cs от С#
  3. имя класса соотвествует имени файла, в котором находится сам класс
  4. по умолчанию пустой класс C#  наследует класс MonoBehaviour от Unity
  5. класс может иметь свои или наследуемые методы
  6. класс может объявляться с присваиванием значений по умолчанию для полей
  7. класс может привязывается к игровому объекту сцены unity если наследует класс MonoBehaviour 

Без вызова Экземпляра
 Класс
  статическая get,set статического класса
  статическая функция статического класса
  статическая метод-функция класса
Класс предка MonoBehaviour
  статическая get,set класса предка MonoBehaviour
  статическая метод-функция класса предка MonoBehaviour

Вызвать Экземпляр
 Класс
  get,set класса
  метод-функция класса
 Класс предка MonoBehaviour
  get,set  класса предка MonoBehaviour
  метод-функция  класса предка MonoBehaviour

Функция
 объявление локальной переменной внутри функции неявно или типизированным способом
Класс
 объявление поля только типизированным способом

ключевые слова в C#

применяется для определения или разрешения использования типов как пространств имен

Модуль - сборка 

  1. настройка среды разработки для С# или JavaScript для скрипта
    Edit\Preferences..\External Tools\External Script Editor="Visual Studio 2017 (Comminity)"
  2. редактор сцены или уровня
    File\Open Scene... -> Assets\Scenes\SampleScene.unity
  3. настройка свойств объекта в инспекторе
  4. управление объектами в виде иерархического дерева
  1. создание проекта
    UnityHub\Projects\Add\{Version}{3D}{ProjectName}{Location}\Create->открывается Редактор
  2. сохранение проекта
    в Редакторе -> File\Save Project
  3. открыть проект
    UnityHub\Projects\->выбрать проект
  • открыть Проект
  • первая созданная сцена Unity
    File\Open Scene... -> Assets\Scenes\SampleScene.unity
  • создать новую сцену
    File\New Scene... -> Assets\Scenes\...\New.unity
  • сохранить текущую сцену
    File\Save
    File\Save As... -> Assets\Scenes\...\New.unity
  • GameObject
  • Базовый класс для всех объектов на сценах Unity
    создание пустого игрового объекта на сцене Unity
    открыть Сцену->Tab Hierarchy -> RBM (Right Button Mouse)-> Create Empty

Инспектор

Компоненты

  • гайки и болты Игровых Объектов и поведения в игре
  • Они являются функциональными частями каждого Игрового Объекта
    Фундаментальный объект в сценах Unity, который может представлять персонажей, реквизиты, пейзажи, камеры, путевые точки и многое другое
  1. открыть проект
  2. настройка среды разработки для С# или JavaScript в Редакторе для скриптов
    Edit\Preferences..\External Tools\External Script Editor="Visual Studio 2017 (Comminity)"
  3. создание пустого скрипта С#
    в Редакторе Tab Project->директория->RBM (Right Button Mouse)->create\C# Script ->Имя.cs (имя соотвествует имени класса в самом файле)

Все основные элементы языка C# для создания скриптов на Unity

для шейдера
от Unity
описательный язык программирования шейдера
cодержит в себе шейдерный код CG
обеспечивает взаимодействие с инспектором и материалом
включает в себя встроенные переменные и функции, облегчающие процесс написания шейдера
описывает свойства шейдера
содержит множество решений для различного графического оборудования

Каналы youtube

{

TheGameDev

{

Shader Forge часть 1

{

тесселяция dx11

}

Shader Forge часть 2

{

Custom Lighting

{

закручивание

ломка текстуры при помощи каналов цвета

плавная периодичность ломки текстуры

накладывание двух текстур

встроенная анимация

}

Lit (Basic)

{

тесселяция

}

Post Effect для камеры

{

тип шейдера

красивая загрузка

Game over

}

Shader Forge часть 3

{

ZWrite

глубина отрисовки объекта за стеной

}

}

}