您的位置:首页 > 移动开发 > Unity3D

Unity入门操作_鼠标寻路 _020

2017-08-25 21:09 381 查看
using UnityEngine;

using System.Collections;

public class NavigationTest01 : MonoBehaviour {

private NavMeshAgent agent;
// Use this for initialization
void Start () {
//这时需要在挂载脚本的对象上加Nav Mesh Agent组件
agent = GetComponent<NavMeshAgent>();
}
// Update is called once per frame
void Update () {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
//第四个参数代表的意思是,二进制为1的层数能被照射到(层数一共有2*32组合)
if (Physics.Raycast(ray,out hit,100(默认为100),1<<5))
{
if (Input.GetMouseButtonDown(0))
{
agent.SetDestination(new Vector3(hit.point.x,agent.transform.position.y,hit.point.z));
}
}
}


}

渲染地面之后就可以寻路了,但是此时的障碍物是固定的,如果想让障碍物可以移动,需要在烘焙是只烘焙地面,然后选中所有可移动障碍物添加Nav Mesh Obstacle 组件。Shape有两种选择,Move Threshold 是移动一定距离后渲染,Time To Stationar是在原地停留一定时间后渲染,Carve Only Statio是不实时渲染但执行上面的渲染。

障碍物的可移动性会给游戏带来更多的可变性和可玩性!



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity 鼠标 对象