Unity 点击地面玩家移动到这个位置

NavMeshAgent需要给玩家添加这个组件。
在这里插入图片描述

windos>AI>NavMeshAgent打开网格
选中玩家以及可以行走的地方和障碍物
-烘焙网格蓝色是可以移动的地方。
在这里插入图片描述

using UnityEngine.AI; // 导入需要调用的AI库

	public NavMeshAgent agent; // 无网络代理组件

	void Start()
    {
    
    
        agent = gameObject.GetComponent<Nav Mesh Agent>();
        // 获取无网格代理组件
        
    }
    void Update()
    {
    
    	
    	if (Input.GetMouseButtonDown(1)) // 如果点击鼠标右键。
    	{
    
    
    		RaycastHit hit; // 释放一个光线投射命中的射线
    		// 检查光线是否命中拥有网格系统的对象。
    		if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit,Mathf.Infinity))
    		{
    
    
    			agent.SetDestination(hit.point); // 玩家移动到鼠标点击的位置。

				// 旋转,让玩家在移动的时候可以快速调转方向。
				Quaternion rotationToLookAt = Quaternion.LookRotation(hit.point - transform.position);
                float rotationY = Mathf.SmoothDampAngle(transform.eulerAngles.y,
                    rotationToLookAt.eulerAngles.y,
                    ref rotateVelocity,
                    rotateSpeedMovement * (Time.deltaTime * 5));
                transform.eulerAngles = new Vector3(0, rotationY, 0);
    		}
    		
    	
    	}
    }
    

猜你喜欢

转载自blog.csdn.net/qq_60839745/article/details/128725347