public override void ApplyPosition()
{
if (m_NavMeshAgent.remainingDistance < m_NavMeshAgent.stoppingDistance) {
// Prevent the character from jittering back and forth to land precisely on the target.
var direction = m_Transform.InverseTransformPoint(m_NavMeshAgent.destination);
var moveDirection = m_Transform.InverseTransformDirection(m_CharacterLocomotion.MoveDirection);
if (Mathf.Abs(moveDirection.x) > Mathf.Abs(direction.x)) {
moveDirection.x = direction.x;
}
if (Mathf.Abs(moveDirection.z) > Mathf.Abs(direction.z)) {
moveDirection.z = direction.z;
}
Debug.Log("Move Character");
m_CharacterLocomotion.MoveDirection = m_Transform.TransformDirection(moveDirection);
}
}
using Opsive.UltimateCharacterController.Character;
using Opsive.UltimateCharacterController.Character.Abilities.AI;
using UnityEngine;
using UnityEngine.AI;
public class AITest : MonoBehaviour
{
public UltimateCharacterLocomotion utimateCharacterLocomotion;
public NavMeshAgent navMeshAgent;
NavMeshAgentMovement m_NavMeshAgentMovement;
private void Start() {
m_NavMeshAgentMovement = utimateCharacterLocomotion.GetAbility<NavMeshAgentMovement>();
m_NavMeshAgentMovement.SetDestination(new Vector3(0,0,5));
}
}