从0开始学习框架
文章平均质量分 77
加斯科因丶
一个学习路上的普通人
展开
-
08 事件管理器
上一节我们写了一个简单的引用池,而单一的引用池是没有啥作用的,事件池就是引用池的作用之一我们当然可以把事件定义在模块的内部,比如把一个打开UI的事件定义在UI模块内,但是随着我们模块的不断增多,如果所有事件都定义在自己的模块内,在后期是很难维护的,我们都不知道一共定义了哪些事件…因此,一个全局的事件管理中心,是很有必要的事件池事件池是实际上保存事件的地方,可以添加或者取消订阅事件。在此之前,我希望我们的委托遵循.NET规范,即应该是如下格式 public delegate void TestEve原创 2021-04-19 16:01:45 · 462 阅读 · 0 评论 -
07 引用池
引用池,和对象池的概念非常像,但是对象池服务于具体的GameObject对象,而引用池服务于普通的C#类。举个例子,如果打开UI的时候你想传递一些数据,最简单的方法就是class UIData{ //...} main(){ UIData data = new UIData(); OpenUI(data);}这个方法是我在上一节末尾提到的,即定义一个数据类型,然后打开UI的时候直接传进函数里,说实话我感觉这样做…其实也挺好的…很简单直观,感觉也没啥问题…咳咳,但原创 2021-04-19 14:05:45 · 216 阅读 · 0 评论 -
06 UI管理器4
工具类上一节的末尾,我们需要创建很多UI来测试,因为需要很多Button事件,所以我们写了很多函数,然后…然后一个一个拖到了Button上…很明显的能够感到,这个过程是真的很痛苦…这才五六个Button而已,而实际上我们可能需要几十个几百个Button事件,如果我们都采用这样直接拖放的方式…那是真的痛苦…在UI下新建一个静态工具类,就叫UIUtility吧~/// <summary>/// UI工具类/// </summary>public static class UI原创 2021-03-25 13:43:05 · 113 阅读 · 0 评论 -
05 UI管理器3
数据结构设计我们还不能直接开始设计UI的开闭接口,必须先确定好,应该用什么样的一种格式来储存所有的UI脚本,其实很简单我们能确定一共会有多少个UI吗?这不一定。我们需要随机访问UI吗?一般没这个需求。我们可能会频繁创建和删除UI吗?这倒是有可能的。注意另一个情况,一般来说,我们游戏的UI打开是递进的,关闭UI同样如此,比如说,我们先打开商城,然后购买时弹出确认提示,此时我们应该先关闭确认提示,然后才能关闭商城,是不是很像先进后出的数据结构?那么很明显了,其实没啥特殊的,我们用栈来维护所有UI就行原创 2021-03-25 13:42:28 · 192 阅读 · 0 评论 -
04 UI管理器2
UI的注册好了,在上一节结尾,我们已经能打开一个UI了,那么我们的管理器完成了吗?是的,完成了…个锤子!最直观的问题是,我们现在打开的UI是固定的,废话,因为Resources加载的路径都被写死了…public void OpenUI(){ /// 路径是死的!! GameObject go = Resources.Load<GameObject>("UI/TestUI"); var prefab = GameObject.Instantiate(go);原创 2021-03-25 13:41:50 · 128 阅读 · 0 评论 -
03 UI管理器1
理论首先,为什么需要一个UI框架?抛开所有的想法, 假设我们用最最最基础的做法来做一个UI,我们会怎么操作?很简单,作为入门的一个小白,我可能会在场景里拖一个canvas,然后设置他的active为false,并在需要的时候激活canvas,那样就能显示和隐藏这没有问题,毕竟我的第一个UI界面就是这么写的。。。咳咳,但是!但是我们的游戏不可能只有一个界面啊,比如商店、背包、人物属性等等,UI的数量绝对是难以预计的多。。难不成给每一个UI都拖一个canvas?当然理论上这是可行的。。就像你可以把整个游戏原创 2021-03-25 13:40:43 · 136 阅读 · 0 评论 -
02 一切从管理器出发
万事开头难!想了半天,应该从哪儿开始呢,算了还是别开始了…哈哈开玩笑的让我们先新建一个Unity项目,并给咱们这个框架取一个响当当的名字:SimpleGameFramework,简称SGF(好吧我承认名字很随便,你随意)项目结构:SimpleGameFramework好吧这只是一个毫无看点的空项目…那么我们该从哪儿开始学习呢?在上一篇的结尾我曾经提出过一个想法,即:把系统分为很多不同的模块,每个模块只关心自己的事情。那么很自然的会有一个问题,如果我们的项目有很多模块,那我们要怎么统一管理这些原创 2021-03-25 13:39:45 · 98 阅读 · 0 评论 -
01 前言
说在前面我的所有博客基本上都只是自己的学习记录,目前也还只是一名学生,并非教程博客,所以非常欢迎大佬们给出意见,他人观看时也不要盲目信从,因为可能存在基础性错误,勿怪什么是框架?在所有事情开始之前,我想问一个问题:框架是什么?我本科是学JAVA的,搞JAVA的同学都清楚,JAVA系的框架那叫一个成熟那叫一个多,虽然我没啥兴趣学,但好歹也在学校的课程安排下使用过很多,但我从来没想过这个问题,什么叫框架?单例模式是框架吗?MVC是框架吗?库是框架吗?System.IO是框架吗?到现在我也没法给出一个原创 2021-03-25 13:38:06 · 151 阅读 · 2 评论