随笔分类 -  Unity框架学习

摘要:用于管理游戏运行时的各种数据信息,以一种树状结构储存 新建如下两个脚本 其中DataNode是数据节点类,Manager就是管理器了 DataNode 字段与属性 namespace SimpleGameFramework.DataNode { public class DataNode { #re 阅读全文
posted @ 2021-11-03 22:19 Logarius 阅读(174) 评论(0) 推荐(0)
摘要:先新建如下脚本 ObjectBase是对象基类,如果某个对象想要被对象池管理,那就必须继承自这个类,实际上真正的对象被封装在这个类内部 IObjectPool是对象池接口,OBjectPool是对象池,和引用池的结构很像 ObjectPoolManager就是核心管理器了 ObjectBase na 阅读全文
posted @ 2021-11-03 22:19 Logarius 阅读(167) 评论(0) 推荐(0)
摘要:所谓流程,本质是对于状态机的再封装。一个游戏在运行是,不可能全程处于一个状态,游戏运行的不同状态,我称其为流程,比如刚打开游戏的时候,可能处在登录页面,或者说黑屏动画的时候在加载资源,这就是游戏运行的两个不同状态,这就是流程。 ProcedureBase 流程基类,本质就是一个状态 /// <sum 阅读全文
posted @ 2021-11-03 22:18 Logarius 阅读(119) 评论(0) 推荐(0)
摘要:多语言也是很常用的一个功能,如果游戏想要支持多种语言,那就不得不设计一个多语言的框架。比如中文的“确定”,英文要叫“OK”,你不可能创建多个语言版本的UI,那会十分繁琐,难不成有二十种语言,你就创建二十种UI?那也太折磨人了... 目前只考虑到文字的多语言,实际上还有其他资源也需要支持本地化,比如众 阅读全文
posted @ 2021-11-03 22:18 Logarius 阅读(137) 评论(0) 推荐(0)
摘要:状态机很好理解,它包含了很多的状态,最简单的例子就是Unity自带的Animator Controller,他本身就是一个状态机,里面有很多的动画状态,不同的状态代表不同的动画,然后我们给不同状态之间加上条件,描述状态的转移。 这个模块本身是很好理解的,但目前我也不是很清楚具体会应用在什么地方,参照 阅读全文
posted @ 2021-11-03 22:17 Logarius 阅读(155) 评论(0) 推荐(0)
摘要:上一节我们写了一个简单的引用池,而单一的引用池是没有啥作用的,事件池就是引用池的作用之一 我们当然可以把事件定义在模块的内部,比如把一个打开UI的事件定义在UI模块内,但是随着我们模块的不断增多,如果所有事件都定义在自己的模块内,在后期是很难维护的,我们都不知道一共定义了哪些事件...因此,一个全局 阅读全文
posted @ 2021-11-03 22:16 Logarius 阅读(364) 评论(0) 推荐(0)
摘要:引用池,和对象池的概念非常像,但是对象池服务于具体的GameObject对象,而引用池服务于普通的C#类。举个例子,如果打开UI的时候你想传递一些数据,最简单的方法就是 class UIData { //... } main() { UIData data = new UIData(); OpenU 阅读全文
posted @ 2021-11-03 22:15 Logarius 阅读(258) 评论(0) 推荐(0)
摘要:数据结构设计 我们还不能直接开始设计UI的开闭接口,必须先确定好,应该用什么样的一种格式来储存所有的UI脚本,其实很简单 我们能确定一共会有多少个UI吗?这不一定。 我们需要随机访问UI吗?一般没这个需求。 我们可能会频繁创建和删除UI吗?这倒是有可能的。 注意另一个情况,一般来说,我们游戏的UI打 阅读全文
posted @ 2021-11-03 22:12 Logarius 阅读(42) 评论(0) 推荐(0)
摘要:理论 首先,为什么需要一个UI框架?抛开所有的想法, 假设我们用最最最基础的做法来做一个UI,我们会怎么操作?很简单,作为入门的一个小白,我可能会在场景里拖一个canvas,然后设置他的active为false,并在需要的时候激活canvas,那样就能显示和隐藏 这没有问题,毕竟我的第一个UI界面就 阅读全文
posted @ 2021-11-03 22:11 Logarius 阅读(46) 评论(0) 推荐(0)
摘要:UI的注册 好了,在上一节结尾,我们已经能打开一个UI了,那么我们的管理器完成了吗? 是的,完成了......个锤子! 最直观的问题是,我们现在打开的UI是固定的,废话,因为Resources加载的路径都被写死了...... public void OpenUI() { /// 路径是死的!! Ga 阅读全文
posted @ 2021-11-03 22:11 Logarius 阅读(19) 评论(0) 推荐(0)
摘要:万事开头难! 想了半天,应该从哪儿开始呢,算了还是别开始了... 哈哈开玩笑的让我们先新建一个Unity项目,并给咱们这个框架取一个响当当的名字:SimpleGameFramework,简称SGF(好吧我承认名字很随便,你随意) 项目结构: SimpleGameFramework 好吧这只是一个毫无 阅读全文
posted @ 2021-11-03 22:07 Logarius 阅读(53) 评论(0) 推荐(0)
摘要:什么是框架? 在所有事情开始之前,我想问一个问题:框架是什么? 我本科是学JAVA的,搞JAVA的同学都清楚,JAVA系的框架那叫一个成熟那叫一个多,虽然我没啥兴趣学,但好歹也在学校的课程安排下使用过很多,但我从来没想过这个问题,什么叫框架? 单例模式是框架吗?MVC是框架吗?库是框架吗?Syste 阅读全文
posted @ 2021-11-03 22:06 Logarius 阅读(60) 评论(0) 推荐(0)