鼠标点击地面,移动角色,NavMeshAgent导航

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class mouseNavMove : MonoBehaviour {
    public GameObject clickPrefab;
    private NavMeshAgent agent;
    public float minDistance = 3f;

    private Animation anim;
    /// <summary>
    /// 鼠标点击地面的点
    /// </summary>
    Vector3 hitPoint;

    private void Awake()
    {
        agent = this.GetComponent<NavMeshAgent>();
        anim = this.GetComponent<Animation>();
        anim["walk"].wrapMode = anim["idle"].wrapMode = WrapMode.Loop;
        
    }

    // Update is called once per frame
    void Update()
    {

        //获取鼠标点击地面的点
        if (Input.GetMouseButtonDown(1))//鼠标右键瞬间按下
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit = new RaycastHit();
            if (Physics.Raycast(ray, out hit))
            {
                if (hit.collider.tag == "Terrain")
                {
                    hitPoint = hit.point;
                }
            }
            //鼠标点击地面的点 生成点击圆圈特效
            float height = Terrain.activeTerrain.SampleHeight(hitPoint);//获取当前Terrain的高度
            hitPoint.y = height + 0.3f;
            Instantiate(clickPrefab, hitPoint, Quaternion.identity);
            //开始移动
            SetDestination(hitPoint);
            Debug.LogWarning("角色向" + hitPoint + "移动");
        }

       

        if (agent.enabled)
        {
            //是否在移动中
            bool isMoveing = agent.pathPending ||
                  agent.remainingDistance > agent.stoppingDistance ||
                  agent.velocity != Vector3.zero;

            //没有移动,就停用导航
            if (!isMoveing)
            {
                agent.Stop();
                agent.enabled = false;
                anim.CrossFade("idle",0.1f);
            }
        }
    }

    public void SetDestination(Vector3 targetPos)
    {

        agent.enabled = true;
        anim.CrossFade("walk", 0.1f);
        agent.SetDestination(targetPos);
    }
}

猜你喜欢

转载自blog.csdn.net/u013628121/article/details/79567694
今日推荐