Всем привет возникла такая проблема…мне нужно что-бы мой бот поворачивался в сторону его движения и возникла такая проблема как определить в коде в каком направление движется бот что-бы его повернуть? все реализованно в юнити 2д,сразу скажу что игра с видом сверху и обычным флипом тут не обойтись
Это как?
Движения чего?)
движение самого бота, к примеру он движется в низ и поворачивается своим передом в низ
Так а движение как сделано?
Выложите код.
using UnityEngine;
using UnityEngine.AI;
public class Bot : MonoBehaviour
{
public Transform player;
public LayerMask layerMask;
private Rigidbody2D rb;
NavMeshAgent agent;
public float stopDistance;
public float retrDistance;
void Start()
{
rb = this.GetComponent<Rigidbody2D>();
agent = GetComponent<NavMeshAgent>();
agent.updateRotation = false;
agent.updateUpAxis = false;
}
void Update()
{
player = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
agent.SetDestination(player.position);
}
}
мне нужно понять как отследить его движение верх в низ в право в лево, тогда я смогу его поворачивать
Может достаточно просто тут true
?
у меня игра 2д, с видом с верху,если там поставить true то бот будет вращаться не по той оси,мне надо чтобы он вращался по оси z… недавно начал работать с navmesh так что я хз как это сделать
я думаю есть способ отследить когда бот двигается по оси x и y и повернуть когда он двигается в ту или иную сторону
еще у меня была идея написать примерно такой скрипт
if(новая позиция по x > старой позиции по x)
transform.eulerAngles = new Vector3(0, 0, 90);
но как найти старую позицию я незнаю
В velocity вроде указано направление.
Как-то так можно угол вычислить: NavMeshAgent rotation - Unity Answers