- 博客(13)
- 收藏
- 关注
原创 AI决策算法 行为树实现(二)
顺序节点:SequenceNode并行节点:ParallelNode ( 当一个节点不通过就不执行 )并行节点2:ParallelFlexibleNode ( 当所有节点不通过才不执行 )选择节点: PrioritySelectorNode实现:顺序节点:SequenceNodenamespace BehaviorTree{ publi
2017-03-30 15:34:29 1104
原创 AI决策算法 行为树实现(一)
本系列文章部分内容参考自 https://zhuanlan.zhihu.com/p/19890016?columnSlug=indiegamepixel 感谢原作者的知识分享行为树包括 :基础节点:BaseNode前置条件节点:PreconditionNode顺序节点:SequenceNode并行节点:ParallelNode ( 当一个节点不通过就不执行 )并
2017-03-30 15:32:20 4004
原创 AI决策算法 之 GOAP (三)
源码地址:http://pan.baidu.com/s/1dFwzmfB这篇我们使用上篇文章写的GOAP框架来完成一个实例:实例内容:AI有10HP, 需要去站岗,站岗2秒钟扣5HP当HP根据GOAP框架逻辑推断出需要:AI数据提供者,站岗Action,补充HPAction,HP点脚本,站岗点脚本, AI属性脚本主要脚本:
2017-03-29 11:51:50 2871
原创 AI决策算法 之 GOAP (二)
GOAP 的主要逻辑:1.Agent的状态机初始化Idle状态2.Idel状态根据IGoap提供的数据,通过Planer得到最优路线3.Agent的状态机转换状态到PerformAction状态4.PerformAction状态解析路线,执行路线的动作队列5.如果动作需要到范围内,切换到MoveTo状态移动到目标范围,否则执行动作队列6.当全部动作执行完毕,告诉IGoap目
2017-03-28 15:19:49 6354
原创 AI决策算法 之 GOAP (一)
本系列文章内容部分参考自:http://gamerboom.com/archives/83622什么是GOAP? 引用原文的一句话 : 目标导向型行动计划(简称GOAP)是一种能够轻松呈现给你的代理选择的AI系统,也是帮助你可以无需维持一个庞大且复杂的有限状态机而做出明智的决策的机器。用处:以前我们经常使用FSM有限状态机来实现AI系统,但是当一个游戏
2017-03-28 10:10:23 9326
原创 strange IOC框架 塔防游戏实例应用 (五)
源码地址: (注 : 当时没写完的Demo工程,主要看看MVC分层)应用场景: 开始关卡顺序逻辑:Viiew的Mediator里监听开始关卡按钮 -》 把参数传递发出开始关卡事件 -》 Command与Model交互并读取参数开始相应关卡1.Mediator代码public class Mediator_Select : EventMedi
2017-03-23 11:11:29 891
原创 strange IOC框架 塔防游戏实例应用 (四)
源码在最后放上应用场景: 进入游戏开始计时顺序逻辑: 进入场景发出View层事件 -》 View的Mediator接收 -》调用View触发-》发出结束事件1.进入场景发出View层事件 IEnumerator StartCount() { yield return new WaitForSeconds(0f);
2017-03-23 11:02:52 843
原创 strange IOC框架 塔防游戏实例应用 (三)
源码在最后一章放上应用场景:游戏结束顺序逻辑: View层的Mediator发出结束事件 -》 Command与Model交互做出对应处理 -》把与Model交互的数据派发给View1.View层的Mediator发出结束事件void On_city_Dead(Object_Role role) { if (View_Spawner.
2017-03-23 10:00:23 884
原创 strange IOC框架 塔防游戏实例应用 (二)
源码在最后一章放上应用场景:点击地图弹出相应炮塔弹窗分层逻辑: 地图View点击 —> 发出地图事件 —> 地图根据参数做出反应 —>与Model层交互数据并把数据传输到相应View层做出反应 1.地图View点击发出事件 void OnMapTileClick(int mouseButton, Data_Tile tile) {
2017-03-23 09:51:42 996
原创 strange IOC框架 塔防游戏实例应用 (一)
源码在最后一章放上应用场景:进入对应的场景触发相应的逻辑 1.加载场景时发出事件 void OnLevelWasLoaded(int level) { Args_Scene e = new Args_Scene() { level = level }; //把场景Index传过去 dispatcher.Dispa
2017-03-23 09:40:14 2067
原创 关于Unity中的框架层 和 应用层
以前经常分不清框架的实际含义,以为每个游戏都会单独写一个框架,框架应该都是一定的局限性,其实不然,大部分重复的功能抽象出来的可重用的才是框架部分。关于框架层:游戏中的底层代码,像UI框架,资源管理器,MVC分层框架,对象池等,都是为了更好的管理,分好结构,提高性能,而不是为了实现具体的需求,这部分就是框架层。关于应用层:策划给的具体需求,大到整个游戏的流程,
2017-03-09 12:16:16 3218
原创 【StrangeIOC框架】 通过一个实例来理解MVCS结构
StrangeIOC框架 是Unity一个开源的框架,在asset store上可以获取,我们主要是学习它的架构思想,架构如下:注:本文需对StrangeIOC有一定了解,如注入等;我们假设要实现一个: 发起游戏结束事件,显示游戏结束面板,更新显示游戏结束信息的这样一个功能,怎么实现呢?大体结构如下:1.发起Command事件2.派发Vi
2017-03-08 12:33:11 1124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人