Как плавно развернуться лицом к врагу

850
23 августа 2017, 14:31

Здравствуйте. Не так давно я начал изучать 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);
            }
    }
} 

Дело в том, что он вращает персонажа лицом к врагу, словно телепортирует. Особенно это не очень смотрится, когда ты стоишь далеко от врага.

Хотел бы узнать, как развернуть перса медленно. Если можно, с объяснениями. Заранее спасибо.

Answer 1

Держи!

    [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);
                }
         }   
    }
READ ALSO
Вопрос про ссылочные типы данных

Вопрос про ссылочные типы данных

Если string является ссылочным типом, как и class, то почему у str1 и str2 разные значения? По идее обе переменных должны ссылаться на одну и ту же область...

227
XCode 9: UI API called from background thread

XCode 9: UI API called from background thread

Не запускается простейшее ARKit приложениеПросто исходная демо сцена из ARKit для Unity

206
ComboBox из XML-файла.

ComboBox из XML-файла.

Есть Xml-файл с таким содержимым:

308