欢迎来到天天文库
浏览记录
ID:52323020
大小:302.31 KB
页数:11页
时间:2020-03-26
《Unity3D游戏开发之自动寻径等.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Unity3D游戏开发之自动寻径等自动寻径指的就是点击场景上的一个位置,角色就会自动寻路过去。中间可能会有很多的障碍物,角色会自动绕过障碍物,最终达到终点。 Navigation:定位,导航 首先先来实现巨魔自动寻径的功能,先在视图中创建地形和障碍物(障碍物可以用cube来代替),然后倒入巨魔。【狗刨学习网】然后点击window---Navigation,这样在属性栏的旁边就会出现Navigation栏。然后设置各个物体的属性:地面和障碍物:然后烘培寻路网格:巨魔: 最后给巨魔添加脚本,代码如下:1. NavMeshAgentag
2、ent;2. voidStart(){3. agent=GetComponent();4. }5.6. voidUpdate(){7. RaycastHithit;8. if(Input.GetMouseButtonDown(0)){9. Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);10. if(Physics.Raycas
3、t(ray,outhit)){11. agent.SetDestination(hit.point);12. }13. }14. }还可以实现巨魔的走和跑,在代码中添加:1.Animatoranim;2.voidStart(){3. anim=GetComponent();4. }5.voidUpdate(){6. if(agent.remaining
4、Distance==0) 7. { 8. AnimationToIdle(); 9. } 10. else 11. { 12. AnimationToWalk(); 13. } 14. }15.publicvoidAnimationToIdle(){16. anim.SetFloat("idle",1F);17. anim.SetFloat("walk",0.0F);18.
5、 anim.SetFloat("run",0F);19. }20.publicvoidAnimationToWalk(){21. anim.SetFloat("run",0.0F);22. anim.SetFloat("idle",0F);23. anim.SetFloat("walk",1.0F);24. }25.}最后把脚本拖放到巨魔上。宠物跟随在游戏中,主角的身边总是跟着自己的魔宠,我们也来实验一下,下面我用球来代替魔宠。代码如下:1.publicTransformtarg
6、et;2. privateNavMeshAgentagent;3. voidStart(){4. agent=GetComponent();5. }1. voidUpdate(){2. if(target!=null){3. agent.destination=target.position;4. }5. }把脚本拖放到魔宠上,并且给魔宠添加NavMeshAgent设置障碍物 如图,在添加一个cube充当障碍物设置cube
7、的属性: 这样在巨魔到达障碍物时就走不过去。高空下落游戏中经常有从山上或者是墙上跳下的人物,我也来实验一下这功能。选中要跳落的地点,点击障碍物,在右侧栏中进行设置: 设置完成后出现如下场景:寻路网格层把Navigation里面Bake的Drop Height的值设为0,取消勾选Navigation里面Object的OffMeshLink Generatic,点击Bake;在Navigation里面Layers创建两个Layers(LayersUp,LayersDown)-->Bake设置巨魔属性:一定要注意,创建了两个Layer
8、s,选中两条路径,所选的路径的Navigation里面的Navigation Layer也要改变:这样才能实现巨魔有选择性的寻路。NavMeshAgent属性解释:
此文档下载收益归作者所有