- 博客(32)
- 收藏
- 关注

原创 Unity单例模式最佳实践(附代码)
笔者系统地整理了下在Unity中实现单例的若干种方案。分析各种方案优劣,给出了推荐的优雅写法。针对两类情况分别提供了实现方案:1. 继承自MonoBehaviour(7种)2. 纯C#实现(3种)
2023-01-09 01:36:19
8202
8
原创 快速排序及优化
本篇文章旨在提供快速排序的C#实现,并通过随机pivot,三数取中,小区间使用插入排序,栈实现,合并pivot以缩小分割范围等方式对快速排序进行优化。
2023-04-12 09:10:52
641
原创 Unity设计模式—子类沙盒
一个基类定义了一个抽象的沙河方法和一些预定义的操作集合。通过将它们设置为受保护的状态已确定它们仅供子类使用。每个派生的沙盒子类根据父类提供的操作来实现沙盒操作。
2023-04-12 09:04:39
681
原创 C#数据结构-队列
区别于堆栈的LIFO,队列具有LIFO(先进先出,First In First Out)的特性。同样的,.NET提供了的泛型实现,它是一个环形队列,其内部也是通过数组实现的。more。
2023-03-22 15:57:11
680
2
原创 Unity设计模式—服务定位器模式
服务定位器模式为某服务提供一个全局访问入口来避免使用者与该服务具体实现类耦合。游戏编程中,某些对象或者系统几乎出现在程序的每个角落。如音频,UI管理等。直接引用对象肯定最差,用单例也不好,更合适的方案是引入服务定位器。它使用起来像一个更灵活,更可配置的单例模式。
2023-03-22 15:54:40
607
1
原创 Unity游戏开发设计模式—备忘录模式
备忘录模式:在的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以在以后将对象恢复到原想保存的状态。
2023-02-22 19:05:30
411
2
原创 Unity设计模式—模板方法
**模板方法模式**:在一个操作方法中定义算法的流程,其中某些步骤由子类完成。模板方法模式让子类在不变更原有算法**流程**的情况下,还能够重新定义其中的步骤。本文从MOBA游戏的技能设计入手,浅谈模板方法模式在游戏中的应用
2023-02-17 11:13:15
536
5
原创 Unity设计模式—责任链模式
责任链模式:避免将一个请求的发送者与接收者耦合在一起,让多个对象都有机会处理请求。将接受者的对象连接成一条线,并且沿着这条链传递请求,知道有一个对象能够处理它为止。
2023-02-15 19:42:28
341
原创 Unity设计模式—中介者模式
本文介绍在Unity中实现一个EventManager,用于集中管理所有的事件。包含泛型参数传递。中介者模式:用一个中介对象封装一系列的对象交互,中介者使对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
2023-02-15 14:46:55
594
3
原创 Unity3D游戏开发设计模式—迭代器模式
迭代器模式在Unity游戏开发中用的非常非常多。.NET框架提供了IEnumerable和IEnumerator接口。本文讲展开聊聊.NET框架和Unity3D中的迭代器模式
2023-02-14 11:49:37
516
2
原创 Unity游戏开发设计模式——代理模式
代理模式是一种结构型设计模式, 让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问, 并允许在将请求提交给对象前后进行一些处理。
2023-02-13 12:14:22
690
2
原创 Unity设计模式—装饰模式
装饰模式:动态地给一个对象增加一些额外的职责。就拓展功能而言,装饰模式提供了一种比使用子类更加灵活的方案。装饰模式是一种用于替代继承的计数,它通过一种无需定义子类的方式给对象动态增加职责—使用对象之间的关联关系取代类之间的继承关系。笔者通过Unity开发的实际例子展示装饰者模式的应用。
2023-02-10 12:16:00
527
原创 Unity设计模式—组合模式
组合模式的关键在于定义了一个抽象构件类,它既可以代表叶子,又可以代表容器。客户端针对该抽象构建类进行编程,无需知道它到底表示的是叶子还是容器,可以对他进行统一的管理。笔者提供了一个Unity开发中实际的例子,用于说明组合模式
2023-02-09 19:22:57
510
原创 Unity设计模式—桥接模式
。桥接模式是一种很实用的结构性设计模式,如果系统中某个类存在两个独立变化的维度,通过桥接模式可以将这两个维度分离出来,使两者可以独立扩展。本文将从Unity引擎的Logger设计谈起,看看适配器模式是怎么被Unity引擎开发者使用的。
2023-02-08 19:32:07
617
原创 Unity设计模式—适配器模式
将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。本文从实际游戏开发出发,谈谈如何使用适配器模式
2023-02-07 11:54:53
428
原创 Unity设计模式—建造者模式(附代码)
建造者模式关注如何逐步创建一个复杂的对象,可以分步骤生成对象, 而且允许你仅使用必须的步骤。是一种创建型设计模式, 使你能够分步骤创建复杂对象。该模式允许你使用相同的创建代码生成不同类型和形式的对象。
2023-02-06 21:45:00
383
原创 Unity物体移动的几种方式与表现(Lerp,SmoothDamp,MoveTowards的区别)
看看Lerp,SmoothDamp,MoveTowards的区别和具体使用方法。
2023-02-03 08:27:52
4637
原创 Unity设计模式—工厂方法模式(附代码)
是简单工厂模式的延伸,它保留了简单工厂模式优点点,同时还弥补了简单工厂的缺陷:能更好地符合开闭原则要求,在增加新的具体产品对象时无需对已有系统做任何修改。
2023-02-01 22:15:00
504
原创 Unity设计模式——原型模式
原型模式是一种创造性模式,它通过复制一个已有对象来获取更多相同或者相似地对象。原型模式可以提高相同类型对象的创造效率,简化创建流程。让我们来看看Unity里怎么使用原型模式。
2023-01-31 19:01:53
477
原创 Visual Studio Code调试小技巧——使用LogPoints
Logpoints是一种不会“打断”调试器的断点,他将需要的内容输出到屏幕上。
2023-01-29 15:33:08
1784
4
原创 Unity设计模式——享元模式(附代码)
享元模式是一种结构型设计模式, 它摒弃了在每个对象中保存所有数据的方式, 通过共享多个对象所共有的相同状态, 让你能在有限的内存容量中载入更多对象。本文通过Unity中实际的例子演示了享元模式的运用,并给出开销的对比分析
2023-01-29 12:20:29
962
原创 Unity设计模式—命令模式(附代码)
命令模式是回调函数的面向对象替代品。它将一个请求封装成一个对象,从而让你可以用不同的请求对客户进行参数化,对请求排队或者记录请求日志以支持可以撤销的操作。本篇是在Unity中实现与演示了命令模式,提供了具体的例子与源代码
2023-01-28 14:33:34
1123
原创 一种Unity日志拓展实现思路及方案(附源码
一种Unity日志拓展实现思路及方案。实现- log信息写入本地文件(包括移动端)。- release模式下裁切掉所有日志。- 实现埋点系统,release模式下的Error和Exception上报给服务器。- 埋点系统允许打关键log上报给服务器。- 便捷的配置生产/发布环境的功能。
2023-01-27 21:04:08
509
原创 浅谈如何在Unity里优雅地给原有代码增加功能
概要由一个简单的问题说起,谈谈如何在Unity里增加功能包括:遇到的需求是什么 通过变量实现 通过继承实现 通过组合实现 通过UnityEvent实现 一些关于设计的想法遇到的需求是什么知乎上看到这么个问题“unity新手,如何通过选中小球,从而达到只控制这一个小球,而不控制其他小球的效果?”问题本身很简单,一眼看到我就划走了。但突然想到可以结合这个问题来聊一聊如何给一个既有的类拓展功能,那就还是浅淡谈吧!实现方案实现这个需求有多种方案。假设我们已经有一个Ba
2023-01-23 14:37:42
453
原创 VS Code里使用Debugger for Unity插件进行调试(2023最新版)
如何在最新版Visual Studio Code中进行Unity的调试
2023-01-06 16:24:48
12223
7
原创 让Unity代码更优雅——使用位运算
位运算是指对二进制数的位(bit)进行操作的运算符。一般在介绍语法的书里比较基础的章节就会涉及,但是实际开发中用的又比较少。运算过程先撇开不谈,许多人的困惑主要是:为什么要用位运算以及什么时候需要用位运算。笔者提供一个实际的C#描述的例子,用来回答这两个问题。
2023-01-05 10:30:00
912
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人