Vector2 new_rotation = _enemy.transform.position - transform.position;
transform.up = new_rotation;
данный код резко поворачивает объект по направлению вектора. А как сделать плавный поворот по вектору?
[SerializeField]
float _velocity = 10; //скорость поворота
Transform _target; //Цель, за которой будем следить
public void SetTarget(Transform target)
{
_target = target; //устанавливаем цель, например откуда-то снаружи
}
private void Update()
{
if (_target != null) //если есть цель - поворачиваемся в её сторону
{
Vector2 new_rotation = _target.position - transform.position;
transform.up = Vector2.MoveTowards(transform.up, new_rotation, Time.deltaTime * _velocity);
}
}
Метод Vector2.MoveTowards (и его перегрузки для других значимых типов) сдвигает нас от текущего значения в сторону целевого на значение третьего параметра (maxDistanceDelta), но не дальше, чем до целевого значения. Например:
Mathf.MoveToward(0, 1, 0.5f) //вернёт 0.5f
Mathf.MoveToward(0.7f, 1, 0.5f) //вернёт 1
Mathf.MoveToward(0.5f, 0, 0.6f) //вернёт 0
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пишу софт, который документирует (описывает) формат обмена данными для SOAP сервисов
Я создал модели контента как сказано в ответе чувака этого вопроса
Имеется старый код на VBNet, который портируется на C#