You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.4 KiB
43 lines
1.4 KiB
using System; |
|
using UnityEngine; |
|
|
|
namespace UnityStandardAssets.Characters.ThirdPerson |
|
{ |
|
[RequireComponent(typeof (UnityEngine.AI.NavMeshAgent))] |
|
[RequireComponent(typeof (ThirdPersonCharacter))] |
|
public class AICharacterControl : MonoBehaviour |
|
{ |
|
public UnityEngine.AI.NavMeshAgent agent { get; private set; } // the navmesh agent required for the path finding |
|
public ThirdPersonCharacter character { get; private set; } // the character we are controlling |
|
public Transform target; // target to aim for |
|
|
|
|
|
private void Start() |
|
{ |
|
// get the components on the object we need ( should not be null due to require component so no need to check ) |
|
agent = GetComponentInChildren<UnityEngine.AI.NavMeshAgent>(); |
|
character = GetComponent<ThirdPersonCharacter>(); |
|
|
|
agent.updateRotation = false; |
|
agent.updatePosition = true; |
|
} |
|
|
|
|
|
private void Update() |
|
{ |
|
if (target != null) |
|
agent.SetDestination(target.position); |
|
|
|
if (agent.remainingDistance > agent.stoppingDistance) |
|
character.Move(agent.desiredVelocity, false, false); |
|
else |
|
character.Move(Vector3.zero, false, false); |
|
} |
|
|
|
|
|
public void SetTarget(Transform target) |
|
{ |
|
this.target = target; |
|
} |
|
} |
|
}
|
|
|