Здравствуйте. Не так давно я начал изучать Unity3d.
Столкнулся с проблемой. Не смог найти ее решение на просторах интернета. Проект мой, что-то типа стратегии. Все передвижения пкм. Удар наносится на Fire1. Урон наносится за счет триггера. Поэтому, когда подхожу к врагу, он также бежит на меня. Может оббежать с другой стороны. Тогда я не буду попадать по нему. Для этого я написал простенький скрипт, который разворачивает персонажа к врагу, на которого кликнули пкм. Вот он
void Update () {
if (Input.GetMouseButton(1))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast (ray, out hit, Mathf.Infinity))
if(hit.collider.CompareTag("Enemy") )
{
transform.LookAt(hit.transform.position);
}
}
}
Дело в том, что он вращает персонажа лицом к врагу, словно телепортирует. Особенно это не очень смотрится, когда ты стоишь далеко от врага.
Хотел бы узнать, как развернуть перса медленно. Если можно, с объяснениями. Заранее спасибо.
Держи!
[Range(0,20)]
public float speed;
Vector3 direction;
void Update()
{
if (Input.GetMouseButton(1)) {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit, Mathf.Infinity))
if (hit.collider.CompareTag("Enemy")) {
//transform.LookAt(hit.transform.position);
direction = transform.position - hit.transform.position;
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(direction), Time.deltaTime * speed);
}
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей