Страница 1 из 1

Глюк с поворотом головы персонажа

СообщениеДобавлено: 06 янв 2020, 21:00
NightKot
Собственно ВОТ видяха - можно перемотать на (2,37)min



Гадский глюк появляется когда ему вздумается. Даже не знаю, на что и подумать. Народ, помогите пожалуйста. Хоть куда копать то...
Поясню. рука справа от головы махает палкой циклично (с помощью другого скрипта, к нему претензий нет). Рука слева от головы поворачивается в сторону летающего кристалла. Голова вертится в сторону летающего пузыря. Реализовано с помощью Anima2D+ скрипт.

Вот сам скрипт.

using UnityEngine;

public class TurnToObject : MonoBehaviour


{
float speedRotation = .075f;
public GameObject target;

void Update()
{
Vector3 directionToTarget = (target.transform.position - transform.position).normalized; // направление к цели
transform.right = Vector2.Lerp(transform.right, directionToTarget, speedRotation * Time.deltaTime); // плавный поворот*/


}
}

Re: Глюк с поворотом головы персонажа

СообщениеДобавлено: 06 янв 2020, 22:37
AngryCat
Попробуй так
Синтаксис:
Используется csharp
    private Vector3 lookPoint;
    float speedRotation = .075f;
    public GameObject target;

void Update()
{
lookPoint = Vector3.Lerp(lookPoint,target.transform.position, speedRotation * Time.deltaTime);
transform.LookAt(lookPoint);
}

Re: Глюк с поворотом головы персонажа

СообщениеДобавлено: 06 янв 2020, 22:43
Tolking
и не в апдейт а в лейтапдейт

Re: Глюк с поворотом головы персонажа

СообщениеДобавлено: 06 янв 2020, 22:59
NightKot
Ага. Спасибо. Попробую.

Re: Глюк с поворотом головы персонажа

СообщениеДобавлено: 06 янв 2020, 23:02
1max1

Re: Глюк с поворотом головы персонажа

СообщениеДобавлено: 02 апр 2020, 22:14
NightKot
Спасибо за наводочки. Вот скрипт сочинил, все правильно работает.

using UnityEngine;
public class TurnToObject : MonoBehaviour

{
private Vector3 lookPoint;
public float speedRotation = 1f;
public GameObject target;

void LateUpdate()

{

Vector3 dir = target.transform.position - transform.position;
float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward * Time.deltaTime);

}


}