首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
unity 有限状态机框架
2024-09-05
Unity 游戏框架搭建 (四) 简易有限状态机
为什么用有限状态机? 之前做过一款跑酷游戏,跑酷角色有很多状态:跑.跳.二段跳.死亡等等.一开始是使用if/switch来切换状态,但是每次角色添加一个状态(提前没规划好),所有状态处理相关的代码就会指数级增长,那样就会嗅出代码的坏味道了.在这种处理状态并且状态数量不是特别多的情况下,自然就想到了引入状态机.优点: 1.使代码整洁,状态容易扩展和管理. 2.可复用. 3.还没想到.....缺点: 1.也没想到...... 什么是有限状态机? 解释不清楚,看了下百度百科.反正是一种
基于Unity有限状态机框架
这个框架是Unity wiki上的框架.网址:http://wiki.unity3d.com/index.php/Finite_State_Machine 这就相当于是“模板”吧,自己写的代码,写啥都是一个风格,还是得多读书,多看报啊... 有限状态机用来做状态转移,比如代码中的例子,NPC有两个状态跟着主角走(状态A),或者沿着自己的路线走(状态B).有两个转换,其实就是两条边,A->B,B->A. 框架里面Transition表示边,StateID表示状态,FSMState是一个状态的抽象
Unity 游戏框架搭建 (十) QFramework v0.0.2小结
从框架搭建系列的第一篇文章开始到现在有四个多月时间了,这段时间对自己来说有很多的收获,好多小伙伴和前辈不管是在评论区还是私下里给出的建议非常有参考性,在此先谢过各位. 说到是一篇小节,先列出框架的概要图. 目前,图中除了UI模块和未支持的部分,都有相应的文章来介绍. 设计模式: Unity 游戏框架搭建 (二) 单例的模板Unity 游戏框架搭建 (三) MonoBehaviour单例的模板 事件: Unity 游戏框架搭建 (五) 简易消息机制 AI: Unity 游戏框架搭建 (四) 简易有
Unity StrangeIoC框架
Unity StrangeIoC框架 http://blog.csdn.net/y1196645376/article/details/52746251
Unity 游戏框架搭建 2018 (一) 架构、框架与 QFramework 简介
约定 还记得上版本的第二十四篇的约定嘛?现在出来履行啦~ 为什么要重制? 之前写的专栏都是按照心情写的,在最初的时候笔者什么都不懂,而且文章的发布是按照很随性的一个顺序.结果就是说,大家都看完了,都还对框架没有一个感觉,感觉很乱.而现在,经过两年多的摸索,笔者已经对框架的体系有了一个了解,所以希望再版一次此系列的专栏. 为什么不在原来的文章里直接修改呢? 在上一轮的专栏第二十四篇里有讲过过:虽然以前的内容过时了,但是这些专栏对笔者有很重要的意义,它们记录了笔者成长的一个经历,在评论区有着大家的支
Unity 游戏框架搭建 (十六) v0.0.1 架构调整
背景: 前段时间用Xamarin.OSX开发一些工具,遇到了两个问题. QFramework的大部分的类耦合了Unity的API,这样导致不能在其他CLR平台使用QFramework. QFramework定义了太多了命名空间,如果使用vs for mac或者MonoDevelop开发项目很不方便,每次都要先using命名空间IDE才会提供代码提示,当然用Rider就没有这个问题. 基于以上几点进行了一次架构调整. 目前架构: 为了提升开发效率,命名空间全部统一为QFramework,而不是像以
今天研究Unity Ioc 框架
今天研究Unity Ioc 框架,被自己坑了两个多小时. 运行就报错,反反复复检查了很多次,配置文件,代码都没有问题,也从新写了好几遍. 最后仔细看报错消息才知道,config文件没有生成到目录………… -_- 各路大神,引以为鉴呀!
Unity 游戏框架搭建 (十三) 无需继承的单例的模板
之前的文章中介绍的Unity 游戏框架搭建 (二) 单例的模板和Unity 游戏框架搭建 (三) MonoBehaviour单例的模板有一些问题. 存在的问题: 只要继承了单例的模板就无法再继承其他的类. 虽然单例继承其他类是比较脏的设计,但是难免会遇到不得不继承的时候.没有最好的设计,只有最合适的设计. 解决方案: 首先实现单例的类从使用方式上应该不变,还是 XXX.Instance.ABCFunc() 之前的单利的模板代码如下所示: ``` using System; using Syste
Unity 游戏框架:资源管理神器 ResKit
此篇文章准备了将近两周的时间,写了改,改了删.之前有朋友反馈,上一个文章太冗长了,影响阅读体验,这一讲就走个精简路线.所以只要不是很重要的内容就都删减掉了. 文章分两个部分,第一部分是原理,第二部分是实战. 原理部分,初学者尽量去理解就好,不用跟着敲,列出的代码都是示意代码. 实战部分是留给初学者的,希望敲完代码,这样有助于理解前边的原理. 当然原理不是很难. 第一部分:原理 ResKit 中值得一说的 Feature 如下: 引用计数器 可以不传 BundleName 当然也有很多不值得一提的
关于基于python2.7的unity自动化测试框架GAutomator测试环境的搭建(源码网盘下载地址:https://pan.baidu.com/s/1c2TXwtU)
关于基于python 2.7的unity自动化测试框架GAutomator测试环境的搭建 百度云盘链接(思维图学习资料):https://pan.baidu.com/s/1dFWExMD 准备工作(具体操作步骤度娘知道): 1. 安装java jdk 2. 配置java jdk环境变量 3. 安装Android jdk(嫌麻烦直接下载:Android Studio安装,大约1.8g) 4. 配置Android jdk环境变量 5. 安装和配置好python开发环境 框架搭建(建议使用pychar
凉鞋:我所理解的框架 【Unity 游戏框架搭建】
前言 架构和框架这些概念听起来很遥远,让很多初学者不明觉厉.会产生"等自己技术牛逼了再去做架构或者搭建框架"这样的想法.在这里笔者可以很肯定地告诉大家,初学者是完全可以去做这些事情的. 初识架构和框架 架构和框架是非常接地气的,离我们其实并不遥远. 什么是架构? 架构是一个约定,一个规则,一个大家都懂得遵守的共识.那这是什么样的约定.什么样的规则.什么样的共识呢? 我以包为例,我经常出差,双肩背包里装了不少东西.笔记本电脑.电源.2 个上网卡.鼠标.USB 线.一盒大的名片.一盒小的名
Unity StrangeIoc框架 (二)
MVCSContex :the big picture 1.应用程序的入口是一个类成为ContextView,这是一个Monobehavior实例化MVCSContext 2.用MVCSContext来执行各种绑定. 3.派发器是一个通信总线,允许你再程序发送消息,在mvcscontext中他们发送的是TimEvents, 或者你可以按照上面的步骤重写Context 来使用Signals 4.命令类由TimeEvents或信号触发,然后他会执行一些app逻辑. 5.模型存储状态 6.servic
Unity MVC框架 StrangeIoC
StrangeIoC是一个超轻量级和高度可扩展的控制反转(IoC)框架,专门为C#和Unity编写. 项目地址:https://github.com/strangeioc/strangeioc 文档地址:http://strangeioc.github.io/strangeioc/TheBigStrangeHowTo.html 一些术语:http://strangeioc.github.io/strangeioc/glossary.html MVCS工作图: 官网文档对自带的演示样例进行了具体介
Unity 游戏框架搭建 (三) MonoBehaviour单例的模板
上一篇文章讲述了如何设计C#单例的模板.也随之抛出了问题: 如何设计接收MonoBehaviour生命周期的单例的模板? 如何设计? 先分析下需求: 1.约束脚本实例对象的个数. 2.约束GameObject的个数. 3.接收MonoBehaviour生命周期. 4.销毁单例和对应的GameObject. 首先,第一点,约束脚本实例对象的个数,这个在上一篇中已经实现了. 但是第二点,约束GameObject的个数,这个需求,还没有思路,只好在游戏运行时判断有多少个Ga
Unity 游戏框架搭建 (二) 单例的模板
上一篇文章中说到的manager of managers,其中每个manager都是单例的实现,当然也可以使用静态类实现,但是相比于静态类的实现,单例的实现更为通用,可以适用大多数情况. 如何设计这个单例的模板? 先分析下需求,当设计一个manager时候,我们希望整个程序只有一个该manager对象实例,一般马上能想到的实现是这样的: public class XXXManager { private static XXXManager instance = null; private
Unity 游戏框架搭建 (一) 概述
为了重构手头的一款项目,翻出来当时未接触Unity时候收藏的视频<Unity项目架构设计与开发管理>,对于我这种初学者来说全是干货.简单的总结了一下,以后慢慢提炼. 关于Unity的架构有如下几种常用的方式. 1.EmptyGO: 在Hierarchy上创建一个空的GameObject,然后挂上所有与GameObject无关的逻辑控制的脚本.使用GameObject.Find()访问对象数据. 缺点:逻辑代码散落在各处,不适合大型项目. 2.Simple GameManager:
Unity 游戏框架搭建 (五) 简易消息机制
什么是消息机制? 23333333,让我先笑一会. 为什么用消息机制? 三个字,解!!!!耦!!!!合!!!!. 我的框架中的消息机制用例: 1.接收者 ``` using UnityEngine; using System.Collections; using QFramework; /// /// 1.接收者需要实现IMsgReceiver接口. /// 2.使用this.RegisterLogicMsg注册消息和回调函数. /// public class Receiver : Mon
Unity 游戏框架搭建 (六) 关于框架的一些好文和一些思考
在进行项目架构阶段,游戏框架可以解决一部分问题.剩下的架构问题还需要根据不同的项目解决.总之游戏框架是游戏架构的一部分. 关于锤子和钉子: 最近又拿起了<代码大全>和<暗时间>,想起来<暗时间>的作者维护了一个个人博客,就去逛一逛. 这几天一直琢磨一句话:手里拿着锤子看什么都像钉子.于是翻到了博客锤子和钉子.我的这个行为很好的阐述了什么叫:手里拿着锤子看什么都想钉子- -. 看完之后深度自省了一下- - 文章很有趣,推荐大家读下. 对于框架,用锤
Unity 游戏框架搭建 (七) 减少加班利器-QApp类
本来这周想介绍一些框架中自认为比较好用的小工具的,但是发现很多小工具都依赖一个类----App. App类的职责: 1.接收Unity的生命周期事件. 2.做为游戏的入口. 3.一些框架级别的组件初始化. 本文只介绍App的职责2:做为游戏的入口. Why? 在我小时候做项目的时候,每次改一点点代码(或者不止一点点),要看下结果就要启动游戏->Loading界面->点击各种按钮->跳转到目标界面看结果或者Log之类的.一天如果10次这种行为会浪费很多时间,如果按照时薪算的话那就是....
Unity 游戏框架搭建 (十九) 简易对象池
在Unity中我们经常会用到对象池,使用对象池无非就是解决两个问题: 一是减少new时候寻址造成的消耗,该消耗的原因是内存碎片. 二是减少Object.Instantiate时内部进行序列化和反序列化而造成的CPU消耗. 想进一步了解对象池模式优化原理的同学可以参阅: 对象池模式:http://gpp.tkchu.me/object-pool.html,本篇主要讲如何实现一个精简并且灵活的对象池. 设计: 首先我们要弄清楚本篇对象池的几个概念,否则直接上代码大家会一头雾水. 从字面上理解对象池,
热门专题
EXCEL如何调用单元格数据
sap导出excel表格错点拒绝
fold change 负数
linux中vi打开文件去除^M
MSSQL 栏位默认值设置为当前日期
python opencv视频背景虚化
jsmind禁止展开关闭节点
MOD13 NDVI提取
macbook显示器没有排列选项
azkaban 配置文件中传入日期参数
贝叶斯线性回归Bayes
gitlab ssh 不显示域名问题
得力991计算器电池能用多久
fason和jackson
Vue的axios向后台发送POST请求接收不到参数
如何使用c 使一个cpu核心占满
webpack 打包 es6 模块
antV g6如何画一个三角形
textview drawableleft设置在线图片
w发送数据时候mac帧变ip不变