![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
常用设计模式
W.C.Zeng
这个作者很懒,什么都没留下…
展开
-
5原型模式
这跟工厂模式可能有点类似,就是传递一个敌怪对象作为原型,然后由生成器调用这个敌怪类的复制方法,从敌怪原型对象中克隆出一个新对象。它们有各自的属性,因此我们要生成对应三种敌怪的生成器类。这样的写法,代码结构臃肿,每一个敌怪,都要定义一个对应的生成器类。原型模式的关键思想,是让一个对象可以产生与它自己相似的其他对象。那么,有没有办法,用一个生成器类,生成多个敌怪生成器变量呢?假设一个场景中,我们需要生成很多数量的各种种类的敌怪。另外,原型也常常用在游戏数据的建模中。还可以使用泛型继续优化。...原创 2022-08-28 12:27:20 · 111 阅读 · 0 评论 -
3观察者模式
观察者模式最简单的例子,就是利用属性寄存器 getter 和 setter ,当人物的生命值变化时,自动更新 UI 。或者利用属性寄存器对生命值等属性的取值范围进行限制。对象池对于频繁创建、销毁的对象,常常使用对象池技术进行优化,例如游戏中的射弹、粒子效果等。基本用法就是使用栈、链表或队列等数据结构,预先生成物体并保存,使用时从对象池中取出一个并激活 active,使用完后禁用 unactive 而不是直接销毁 destroy,当对象池中的物体不够时,才额外生成物体。 unity 中自带了对象池 Ob原创 2022-07-02 11:29:51 · 345 阅读 · 0 评论 -
2享元模式
书中的解释:我们需要渲染一片森林,森林有一千颗树,每棵树有相同的部分:树的网格、树的纹理和树叶的纹理每棵树又有不同的部分:位置、旋转、缩放等将相同的部分封装为一个类,只实例化一次;不同的部分封装为一个类,实例化一千次。在 Direct3D 和 openGL 的图形 API 中,分别提供第一个是将被多次渲染的公共数据块——共享的树的类的实例第二个是实例列表及其参数——一千棵树的实例(包含不同的位置、旋转、缩放)这样就渲染了一片森林享元模式的使用痕迹并不明显,如果不额外封装一个多个实例间共享的类,这看起来原创 2022-07-08 13:26:30 · 114 阅读 · 0 评论 -
1命令模式简介
参考阅读1参考阅读2命令模式是对于我们正常使用 按下按键–触发人物移动 的逻辑中间,增加一层解析层,处理不同按键对于的控制逻辑,还可以方便地实现命令的撤销功能以命令行程序为了,模拟一下按键控制人物移动的情况命令类 Command 等下补充模拟人物控制器类 PlayerControllerProgram 基本逻辑:读取用户输入、打印信息PlayerController 的成员方法:处理输入到命令的执行或撤销 Input 、解析命令 GetCommand 、具体命令的操作内容 Fire MoveX 等命令基原创 2022-06-29 18:50:39 · 86 阅读 · 0 评论 -
0单例模式简介
单例模式是最简单的一种设计模型,当我们写一个游戏管理类 GameManager 时,我们希望内存中仅有一份该类的实例,就要用到类的静态成员以 unity 中继承了 monobehavior 类的 GameManager 类为例,只需要用保存一个静态成员变量保存该类的实例,每次要生成新的 GameManager 类时,如果已存在,则删除泛型单例模式 Singleton.cs...............原创 2022-06-29 18:35:56 · 146 阅读 · 0 评论