ClickToMove.cs 845 B

123456789101112131415161718192021222324252627282930
  1. using UnityEngine;
  2. using UnityEngine.AI;
  3. namespace Unity.AI.Navigation.Samples
  4. {
  5. /// <summary>
  6. /// Use physics raycast hit from mouse click to set agent destination
  7. /// </summary>
  8. [RequireComponent(typeof(NavMeshAgent))]
  9. public class ClickToMove : MonoBehaviour
  10. {
  11. NavMeshAgent m_Agent;
  12. RaycastHit m_HitInfo = new RaycastHit();
  13. void Start()
  14. {
  15. m_Agent = GetComponent<NavMeshAgent>();
  16. }
  17. void Update()
  18. {
  19. if (Input.GetMouseButtonDown(0) && !Input.GetKey(KeyCode.LeftShift))
  20. {
  21. var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  22. if (Physics.Raycast(ray.origin, ray.direction, out m_HitInfo))
  23. m_Agent.destination = m_HitInfo.point;
  24. }
  25. }
  26. }
  27. }