Рубрики
Android Unity

R8 и D8

инструмент dex для платформы Android

компиляция dex

ключевой шаг в создании APK
процесс преобразования байт-кода .class в байт-код .dex для среды выполнения Android
Dalvik для более старых версий Android.
Компилятор dex в основном работает под капотом при повседневной разработке приложений, но он напрямую влияет на время сборки вашего приложения, размер файла .dex и производительность во время выполнения.

D8

дексер, который преобразует байтовый код Java в код dex.

R8

инструмент сжатия и минификации Java-программ, который преобразует байт-код Java в оптимизированный код dex.

Рубрики
Android Gradle Unity

Настройка Gradle

Рубрики
Android Unity

Настройка платформы Android для Unity

В Unity Hub в разделе Installs добавляем Add или изменяем версию редактора Unity x.x.x Add Modules. Включаем раздел Android Build Support (в том числе и вложенные строки)
В редакторе Unity открыть Edit\Preferences…\External Tools и отметить по умолчанию установки JDK,SDK,NDK,Gradle
Рубрики
Unity Vuforia AR

Установка плагина

импортирование скаченного плагина Vuforia AR в проект Unity

Рубрики
Unity функции

Тригонометрические функции

Mathf.Deg2Rad
перевод градусов в радианы float

  • rotation.x=Mathf.Deg2Rad*угол
  • для rotation

Mathf.Rad2Deg
перевод радианы float в градусы

  • угол=Mathf.Rad2Deg*rotation.x
Рубрики
Unity Интерфейс ООП полиморфизм

Интерфейс

  • определить контракт взаимодействия между классами
  • определяем поведение, которое впоследствии будет реализовано в каком-то классе
  • как будут вести себя наследники без каких-либо деталей
  • нет ни какой реализации
  • абстрактные методы
  • не может быть конструкторов
  • не может содержать поля классов
  • описывается сигнатура методов
  • публичный контракт взаимодействия
    по умолчанию все члены интерфейса имеют модификатор public
  • Полиморфизм
    Передаётся тип данных — это тип интерфейса
    в качестве параметра будет принимать объект класса, который у нас будет реализовывать интерфейс.
  • интерфейс может содержать свойство
    свойство — это методы, которые маскируются
Рубрики
Object Pool Unity Синглтон

Использование пула объектов на примере

BadShooting.cs
не эффиктивность без использования пула объектов

youtube

в каждом Update
инстализируется объект «пуля»
назначается объекту родитель
вызывает метод, который устанавливает начальную позицию и поворот

public class BadShooting:MonoBehaviour;
{
[SerializableField]
private GameObject bullet;

[SerializableField]
private Transform bulletParent;

[SerializableField]
private Vector3 bulletSpawnPosition;

private void Update()
{
var bullet=GetBullet();
bullet.transform.SetParent(bulletParent);

bullet.GetComponent<BadBullet>().OnCreate(bulletSpawnPosition,transform.rotation);
}

private GameObject GetBullet()
{
return Instantiate(bullet);
}

}

BadBullet.cs
пуля летит прямо и через 3 секунды уничтожается

public class BadBullet:MonoBehaviour;
{
private float lifeTime=3;
private float currentLifeTime;
private float speed=10;

public void OnCreate(Vector3 position, Quaternion rotation)
{
transform.position=position;
transfor.rotation=rotation;
currentLifeTime=lifeTime;
}

void Update()
{
transform.Translate(Vector3.forward*Time.deltaTime*speed);

if ((currentLifeTime-=Time.deltaTime)<0)
Destroy(gameObject);
}
}
Рубрики
Blender FBX Scene Unity Анимация Скелет

Настройка Скелета fbx

экспорт в файл fbx из Blender
Рубрики
Mesh Shader ShaderLab Unity vertex Треугольник

Построить Треугольник в шейдере через 3 вершины меша

Геометрический шейдер
[maxvertexcount(3)]
void geo(triangle float4 IN[3]:SV_POSITION, inout TriangleStream<geometryOutput> triStream)
{
код
}
Рубрики
cginc Shader ShaderLab SubShader Unity Модуль

Создание отдельных модулей для шейдерных функций

Путь к папке с хранением модулей
1 вариант. C:\Program
2 вариант. путь, где расположен шейдер

Файл
Name.cginc
Имя файла не должно совпадать с именем функции внутри модуля