Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第1张图片

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第2张图片

 

1.Charactor Control

将要实现功能:

光标移到地图上不同位置,光标显示不同图片;

通过脚本使光标点地后player自动寻路移动到某点;

通过速度改变player的动画状态。

 

具体实现:

MouseManager脚本,用来改变光标样式和设定寻路终点。

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第3张图片

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第4张图片

 

里面的自设的Event,放在编辑器里是这样

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第5张图片

 

对寻路组件的设置

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第6张图片

 

寻路组件的相关知识 相关知识2 相关知识3

 

注意脚本里有跨越门的内容,效果如下

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第7张图片

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第8张图片

 

HeroController脚本,主要是通过寻路当前速度改变动画状态

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第9张图片

 

动画状态机

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第10张图片

 

2.NPC Controller

将要实现的功能:

npc在一定范围内巡逻;

npc随着不同速度改变不同动画状态;

如果发现player在一定范围则一直追着player。

 

具体实现:

NPCController脚本,就是每隔一段时间变个寻路终点,改变动画状态和player的一样,跟随就是探测距离并把寻路destination改为player

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第11张图片

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第12张图片

 

脚本写好后巡逻点的设置

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第13张图片

 

寻路组件的设置,后面我们调整Stopping Distence的数值

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第14张图片

 

npc的动画状态机

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第15张图片

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第16张图片

 

因为上面的Stopping Distance设置的太低,导致npc追上player后就像要和player跳不好的舞似的,所以增大数值。

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第17张图片

 

3.Finalizing and Extending the Systems

主要介绍:

怎么调整Nav Mesh Agent让自动寻路更顺畅

添加更多障碍物

扩展地图

显示npc的影响范围帮助关卡设计

 

具体实现:

 

查看nav区域的方式

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第18张图片

 

寻找场景内有特点组件的对象,此处为obstacle,即nav里的障碍物

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第19张图片

 

可以查看障碍物的影响范围,挪动和复制新障碍物nav区域会自动改变

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第20张图片

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第21张图片

 

显示npc的影响范围

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第22张图片

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第23张图片

 

使一堆npc不要同时改换巡逻点

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第24张图片

 

player上下楼梯时非常不顺滑,是因为avoidance的quality设置的是High Quality,表示躲避障碍物,这种设置耗费cpu,同时在狭窄的地方就会不顺滑,所以改成None,即不躲避障碍物。

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第25张图片

 

扩展地图的方法。

Beginner Programming: Unity Game Dev Course(4)- Swords and Shovels Character Controller and AI_第26张图片

 

完毕。

 

 

 

你可能感兴趣的:(•【完整课程】)