Рубрики
Unity скрипты.С#.основы.функции

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

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

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

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

  • угол=Mathf.Rad2Deg*rotation.x
Рубрики
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);
}
}
Рубрики
App "Blender" fbx Unity Unity "Scene" анимация Скелет

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

экспорт в файл fbx из Blender
Рубрики
Examples "ShaderLab (CgFx,HLSL)" Mesh Unity vertex Треугольник

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

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

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

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

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