鼠标点击地面,主角移动并切换动画状态

1、给地形添加一个标签

2、烘焙地形

3、给主角绑定导航代理组件

public class PlayerMouseMove02 : MonoBehaviour {
    public GameObject arow;//箭头

    void Start () {
		
	}
	
    void Update () {

        //获取主角的Animator组件,设置布尔值
        GetComponent<Animator>().SetBool("isRun", GetComponent<UnityEngine.AI.NavMeshAgent>().velocity.magnitude > 0);

        if (Input.GetMouseButtonDown(0))
        {
            //鼠标按下,发射射线
            //静态属性, -1,全局唯一的属性,你可以通过类名很[方便]的调用。

            //如果是对象的属性,你就要先找到对象,再调用属性,很麻烦。//GameObject.Find()
            //Input.mousePosition是获取鼠标点击的象素点
            //ScreenPointToRay是按象素来创建射线
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;//碰撞点
            if (Physics.Raycast(ray,out hit, 1000.0f))
            {
                print(hit.collider.tag);
                //判断是否碰到了地面
                //hit.collider 碰撞到的东西
                if (hit.collider.tag == Tags.Ground)
                {
                    print("碰撞到地面");
                    //hit.point获取鼠标点击的位置
                    //Quaternion.identity 四元数默认没有旋转
                    Instantiate(arow,hit.point,Quaternion.identity);

                    //设置导航坐标
                    GetComponent<UnityEngine.AI.NavMeshAgent>().SetDestination(hit.point);//设置目标点
                    
                }
            }

        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值