Unity游戏中有较多的自动寻路插件,看过几个,大同小异。而RAIN中的Behavior Tree感觉很好,听名字就知道很条理。
下面,就用它做个简单的寻路小例子。
首先,导入RAIN的包,结构如下:
在使用的过程当中还会产生几个文件夹用来存放Editor生成的Tree和临时文件等。
接下来创建几个简单的游戏对象,大致如下:
简单布置了一下场景, 蓝色的胶囊体代表Player, 箱子(MoveTarget)是我们要移动到的位置,地面是一个Plane。现在要做的就是让Player移动到目标位置MoveTarget。在Unity中实现这个功能很简单,但如果让Player主动去发现箱子,并走到箱子面前就不如RAIN Editor简单了,AI就是让Player具有人能发现事物的功能。
在RAIN中,已经定义好了视觉、触觉、嗅觉、味觉等,我们这里就用视觉来实现这个功能。
我们先给箱子作一个标记,标记自己是一个箱子。选中箱子,在RAIN菜单下选择Creat Entity,创建实体,并做如下图设置:
在Select Type中选择可视化单位Visual Aspects。 Aspect Name是此箱子的标记,我们起名字为box,RAIN Mind需要用它来发现东西,包括其它模拟感官功能。
接下来就要设置主要的Player了。选中Player,RAIN菜单中选择Create AI。经过这一步,Player已经有了一个子GameObject——AI:
在这里可以给Player设置变量,Mind,运动,Animation,Navigation,感官等。
选中倒数第二项类似眼睛的图标,在这里我们赋予Player视觉能力,在Add Sensor中选择视觉:
这样Player就能模拟人的视觉了(可以看到场景有的箱子,如果加入的是食物以及嗅觉,便可以觅食了)。
由于我们这个例子中并没有使用Path(可以自己了解,其实跟Navigation差不多),所以我们需要关掉有效路径请求选项:
接下来最重要的一步,选中第二项,点击下面Open Behavior Editor,打开Behavior Editor的编辑窗口,输入名称,点击OK:
我们选中root,右键,Create--Actions--Detect,创建一个感觉结点,并作如下的设置:
Aspect这里需要使用双引号,(e打头的也可以定义表达式,是特殊项),是要找box(之前在实体处定义,需要统一名称)。Aspect Variable,我理解为是在这个Tree中的临时变量,其它以后结点可以调用。。此处是把发现的box放在名为findBox的临时变量当中。Repeat,我们选择Until Success,表示直到发现box目标才执行下一个结点。
接下来,就定义所谓的下一个结点。我们找到目标后要让Player向Box寻路,所以在root上右键,Create,Actions,Move,并作如下设置:
MoveTarget是要填写移动到的标记点,这里我们填写得到的box信息,当然这个也可以直接写坐标点(10.0,0.0,10.0)。。
做完上面的步骤我们的龙已经画完了,接下来就是点睛了,这时我们可以关掉Behavior Tree的编辑窗口。没有错的话在项目Assets下已经生成了AI目录,我们在其中的BehaviorTrees文件夹下可以看到我们生成的文件(过程中Tree的编辑是自动保存的)。
打开之前的AI的Mind选项,将这个文件拖过来:
点击Play,看看有没有效果呢。
如果Player并没有移动到Target,试着看一下Player的可视范围:
如果box是在Player的可视范围之外,那Player是不能看到box的,Player只能看到那么远。。。
其它的原因就请按照步骤,仔细找找吧,另可以点击这里下载工程文件。由于我的Unity版本是4.3.4.f1,低版本的朋友可能是无法使用的,请注意。
文章永久链接:
http://751401909.iteye.com/blog/2017143
相关推荐
《Unity3D游戏特效Pro:Indie Glow物体光晕效果详解》 Unity3D作为一款强大的游戏开发引擎,因其易用性和高效的性能深受广大开发者喜爱。在游戏制作中,视觉效果是吸引玩家的重要元素之一,其中光晕效果更是能够...
PATCH-更新系统是坚如磐石,专业,智能,清洁的解决方案,用于管理和分发游戏和应用程序的更新。 您的玩家最终可以毫无痛苦地更新您的游戏,而不必在新版本到来时再次下载整个游戏。这将为他们节省大量带宽和时间!...
uLiveWallpaper 1.4.8版本,Indie版本,相比Pro版本不包含插件本身的源代码,但是可以正常在Unity2018使用(2017也可以,2019以及更新版本没有试过)。baidu云链接可以看这里...
visual stdio 字体
unity3d特效插件 dx11 粒子 特效工具TC Particles - Indie,内涵JavaScript脚本,可用于Unity3D游戏引擎开发。
开发者需要了解如何配置服务器环境,安装必要的依赖,以及设置自动部署流程。 8. **测试**:为了确保网站的功能正常,需要进行单元测试、集成测试和端到端测试。可以使用Mocha、Jest等JavaScript测试框架,配合Chai...
2. **hamstu-indie风格**:"hamstu-indie"可能是开发者社区中的一个特色命名,可能代表了一种独特的设计哲学或者是一系列配色的总称。这种风格可能注重色彩的平衡和对比度,使得代码在视觉上易于区分和理解。 3. **...
TC Particles - Indie是一款专为Unity3D游戏开发者设计的高级粒子特效插件,它基于DirectX 11技术,提供了强大的粒子系统功能,能够帮助开发者创建出视觉震撼的3D特效。粒子特效在游戏、动画和交互式应用中扮演着...
Indie Game Jam 是一年一度的实验性游戏设计盛会。 专业游戏开发人员创建自定义游戏引擎并在四天内使用它制作游戏。 结果显示在 GDC 和 indiegamejam.com 上,代码在 sourceforge 上是 GPL。
fnf的模组版
Football Game Engine (Indie) 足球游戏引擎(独立)Unity游戏项目源码C# 支持Unity版本2020.3.20或更高 Football Game Engine(独立)是足球游戏的高级实现。该软件包非常适合教育目的和制作您自己的游戏。 如果您...
Unity.Indie版是Unity提供的一个版本,特别针对独立开发者和小型团队,它提供了大部分核心功能,但可能在某些高级特性或支持服务上与更昂贵的专业版有所限制。 Unity 2.5版本是一个较早的迭代,尽管如此,它仍包含...
从https://studiostyl.es下载的排名前五的配色方案。包括son-of-obsidian,hamstu,Indie,WekeRoad Ink,Selenitict 适合vs2015使用。
"Go Linear (Mobile & Indie)" 是一个专为Unity3D设计的插件,旨在优化移动端和独立游戏的线性照明效果。线性照明是一种高级光照模型,它提供了更加真实和精确的光影计算,比传统的伽马校正照明有更好的色彩表现和...
语言:中文 (简体) 让产品的独立变现更简单 - indiemakerstart.com 独立开发者所关心的关于产品开发、变现、增长方面的推荐内容。每天获得一些产品变现相关的资源。
u3d的辉光插件,对使用破解版u3d的同学来说,没有后效,可以使用我的插件
Indie-Art-Nest 是一个基于 GitHub Pages 的个人或项目展示平台,主要使用 CSS 技术来构建其视觉效果和交互体验。这个项目的名字“Indie-Art-Nest”可能暗示着它是一个独立艺术家或者小型创意团队展示作品的在线空间...
iSTPWG,即indie_SAGE技术发布工作组,是一个专注于技术发布的研究团队,它的成立目的是为了支持紧急情况独立科学咨询小组(SAGE),尤其是在应对全球COVID-19大流行时提供科技支持。这个工作组的核心任务是促进开放...