untiy射线和自动路径

这篇博客介绍了Unity中的射线技术和自动寻径功能。对于射线,通过创建球体和正方体,利用Raycast进行碰撞检测,并通过脚本实现鼠标控制物体移动。在自动寻径部分,讲解了如何创建地形,设置导航静态,烘焙Navmesh,并为角色添加NavMeshAgent组件以实现避开障碍物的自动寻径功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        我们今天学习了,unity的射线和自动寻径,先说一下射线吧。


1.射线


        先从unity的软件里建立个球体和正方体,然后拖到视图工程栏,给它们加入刚体,然后在scripts文件夹中建立脚本命名为Ray,然后在脚本后台中别写代码如下:

给一个形状体加入一条射线,拖拽形状体是射线不断加长

Ray ray=new Ray Cvector3.zero,transform.position);

RaycastHit hit;

physics.Raycast(ray,out hit,100)

Debug.DrawLine (ray.origin,hit.point);

   在从一个Scripts文件夹中建个脚本,命名为BeanText,然后在里面进行代码编写,使鼠标控制键,点到哪走到哪,代码如下:

Ray ray=Camera.main.screenpoint ToRay(Input.mouse position);

RaycastHit hit;

If(physics.Raycast  cary,out hit,100)){

Gameobject.Instantiate()

}

声明:此篇文档时来自于【狗刨学习网】社区-unity极致学院,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。

2.自动路径


        现在大部分mmo游戏都有自动寻路功能,点击场景上一个位置,角色就会自动寻路过去,中间可能有很多很多种实现方式。

我们要实现一个功能:点击场景的一个位置,角色可以自动寻径过去,角色会绕过各种复杂障碍,找到一条理论上“最短路径”

   给巨魔添加自动寻径

1.创建地形;

2.添加角色;

3.创建多个障碍物,尽量摆的复杂一点,来检查Navmesh的可用性和效率;

4..选中地形,在Navigation窗口中,设置Navigation窗口中,设置Navigation Static;

5.一次选中障碍物,在avigation窗口中,设置Navigation Static

6.Navigation窗口中,选择Bake按钮,进程场景烘培,就可以烘培出寻路网格了;

7.为角色添加NavMeshAgent组件。Component->Navigation->Nav Mesh Agent;

8.为角色新增一个脚本PlayerController.cs,实现点击目标,自动寻路功能;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值