Unity3D导航 爬楼梯、跳楼、分路线前进

1.爬楼梯

(1)4个cube 、玩家capsule,1个plane

Unity3D导航 爬楼梯、跳楼、分路线前进_第1张图片
(2)为玩家添加组件
Unity3D导航 爬楼梯、跳楼、分路线前进_第2张图片(3)将所有对象 ,都设置为静态
Unity3D导航 爬楼梯、跳楼、分路线前进_第3张图片
(4) 执行window——》AI——》Navigation 设置导航
设置高度 最后点击Bake 进行烘焙
Unity3D导航 爬楼梯、跳楼、分路线前进_第4张图片
(5)给玩家添加脚本

using UnityEngaine.AI;
public class MouseMoveRay : MonoBehaviour{
NavMeshAgent navMeshAgent;//导航类
private void Start()
{
	navMeshAgent =GetComponent<NavMeshAgent>; 获取到玩家
}
void Update(){
if(input.GetMouseButton(0))
{
	 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//从摄像机发出到点击坐标的射线
					
			            RaycastHit hitInfo;
			            if(Physics.Raycast(ray,out hitInfo,100))
				             {
				                 Debug.DrawLine(transform.position,hitInfo.point,Color.red);//划出射线,只有在scene视图中才能看到
								navMeshAgent.SetDestination(hitInfo.point);//设置玩家的目的地
				
								GameObject gameObj = hitInfo.collider.gameObject;
				                Debug.Log("click object name is " + gameObj.name);
				                if(gameObj.tag == "Pickup")//当射线碰撞目标为boot类型的物品 ,执行拾取操作
					                 {
					                     Debug.Log("pick up!"); 
			
				                     }
									
							 }
}
}

2. 跳楼

(1)代表楼的方体要勾选Generation OffMeshLinks
Unity3D导航 爬楼梯、跳楼、分路线前进_第5张图片
变成下图
Unity3D导航 爬楼梯、跳楼、分路线前进_第6张图片
(2) 设置Drop Height的值
Unity3D导航 爬楼梯、跳楼、分路线前进_第7张图片

3. 分路线前进

(1)复制一个玩家capsule 、plane,新建两个plane,全部设置成导航静态
Unity3D导航 爬楼梯、跳楼、分路线前进_第8张图片
(2)给新建的两个面板添加Areas,自行命名,最后点击BakeUnity3D导航 爬楼梯、跳楼、分路线前进_第9张图片
(3)分别给玩家设置Area Mask
Unity3D导航 爬楼梯、跳楼、分路线前进_第10张图片
如果玩家1想走第一条路线那么就不勾选第二条路线,反之亦然。

完毕!

你可能感兴趣的:(Unity3D)