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

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

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

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

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

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

ООП Интерфейс «Понятие»

  • определить контракт взаимодействия между классами
  • определяем поведение, которое впоследствии будет реализовано в каком-то классе
  • как будут вести себя наследники без каких-либо деталей
  • нет ни какой реализации
  • абстрактные методы
  • не может быть конструкторов
  • не может содержать поля классов
  • описывается сигнатура методов
  • публичный контракт взаимодействия
    по умолчанию все члены интерфейса имеют модификатор public
  • Полиморфизм
    Передаётся тип данных — это тип интерфейса
    в качестве параметра будет принимать объект класса, который у нас будет реализовывать интерфейс.
  • интерфейс может содержать свойство
    свойство — это методы, которые маскируются
Рубрики
C# основы.ООП ООП ООП "Класс" ООП принцип "Инкапсуляция" ООП принцип "Наследование" ООП принцип "Полиморфизм"

Общий Класс

общий класс создаётся благодаря наследованию
базовый класс класс, который наследуется

Характерные Особенности

присущие множеству связанных элементов

Рубрики
Unity Object Pool Синглтон

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

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" Unity fbx Unity "Scene" анимация Скелет

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

экспорт в файл fbx из Blender