- 博客(142)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C#设计模式:总目录
设计模式7大原则开闭原则(OCP)依赖倒置原则(DIP)里氏代换原则(LSP)单一职责原则(SRP)接口隔离原则(ISP)合成复用原则(CRP)迪米特法则(LOD)设计模式:创建型模式:工厂模式(Factory Pattern)单例模式(Singleton Pattern)建造者模式(Builder Pattern)原型模式(Prototype Pattern)结构型模式:适配器模式(Adapter Pattern)装饰器模...
2020-11-05 18:24:14
510
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 u3d学习总结笔记本 目录 _学习记录
自用工具MyTool 个人工具类目录(已弃用)MyComponent 个人组件目录(已弃用)SDHK_Tool 个人工具类目录自定义组件0.unity3d组件自动寻路NavMeshAgent物理组件 Physics1.操控方面android安卓触屏Input用户输入的检测鼠标的事件函数CharacterController 角色控制器2.移...
2018-09-15 01:26:09
2009
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C#_001_各种声明
1.多维数组,常数:int[, , ,] sz = new int[3, 3, 3, 3];public const string player = "Player";2.结构体:struct direnJG //结构体定义声明{ public int direnx; public youxi yX;//可写入枚举、函数}3.枚举:enum ...
2018-06-14 21:09:42
663
原创 Unity Addressables资源管理 分析器 AnalyzeRule
冗余的asset是由于不同组中的asset共享依赖关系,例如,两个Prefabs 共享存在于不同Addressable Group中的一个 material。为了防止这种情况发生,必须将material 标记为Addressable,或者放在其中一个Prefabs中,或者放在它自己的空间中,从而将该material 及其依赖项归在一个单独的Addressable Group中。此规则检测编辑器场景列表中的场景和Addressable中的场景之间共享的任何assets或assets依赖项。
2022-12-19 17:45:54
1365
原创 Unity Addressables资源管理 主设置面板
压缩Catalog到AssetBundle文件中,会减少大小,但是会增加构建和加载的时间。启用时,某些循环依赖项可能无法加载,因为引用的资产始终分配给同一捆绑包位置,使用后,更新的时候也必须更新所有引用该资源的捆绑包,并且构建过程也比较慢。通过内部ID创建查找表,可以减小Catalog大小,但是会增加加载时间。创建新模板时,必须先将其添加到此列表中,然后才能使用它。如果创建自定义生成或运行模式脚本,则必须先将其添加到此列表中,然后才能使用它。可以减少冗余和复杂的Mono依赖的数目,也减少了运行内存。
2022-12-19 15:03:46
1330
原创 Unity Addressables资源管理 资源组设置
旧资源会一直占用缓存,新资源如果一直按照静态资源包在更新则会形成依赖长链。如果这个Bundle内的资源变化了, 整个bundle都会被重新打包。增量更新,后续更新资源不改变旧资源包,使用新增量资源包加载改变的内容。使用组GUID和云项目Id的组合(如果启用了云服务)。如果这个Bundle内的资源变化了,工具就会将这些资源移到新的分组。生成静态包后,并改变了静态包的内容,这时可以点击检测生成增量包。如果项目绑定到不同的云项目Id,则会发生变化。因为在项目之间构造的id是确定的且惟一的。
2022-12-16 17:55:09
1230
原创 Unity Addressables资源管理 打包路径设置
变量组里包含着【打包路径】和【加载路径】两条路径。则是编辑器和【托管服务】一起使用的路径。此时资源组的设置里就多了一个新的配置路径。BuildTarget:一个路径变量。新添加的全局配置可设置激活和修改名称。build指资源包生成位置。Load指资源包加载路径。添加则会添加到所有配置里。Remote:远程路径。是内置默认的本地路径。Local:本地路径。
2022-12-14 15:24:32
2243
1
原创 Unity Addressables资源管理 设置远程加载资源
Use Asset Database(fastest) 直接加载文件而不打包,Profiler获取信息少。Simulate Group (advanced) 在不打包的情况下模拟AssetBundle的操作。Use Exising Build(Windows) 加载打包资源。设置了后这个包会打到不同的路径,加载也只从远程地址加载。测试发现打资源包时会将本地服务器的设置一起打进去。图片挂在WindowImage预制体上。创建一个本地服务器,并勾上Enable。修改名字并添加了一张图片。
2022-12-09 17:11:05
1858
原创 Unity Addressables资源管理 安装和使用本地加载
打开Unity内置的 PackagerManager窗口 搜索Add即可找到。此时资源虽然没打包,但已经可在运行时加载到资源了。Assets下会生成一个。点击组可看到默认的打包路径。安装版本为1.19.19。其中可以看见面板中的。
2022-12-08 17:00:42
1690
原创 xLua 学习笔记
xLua下载https://github.com/Tencent/xLua解压后打开Assets目录将文件拖进新工程即可使用主要函数和用法C#端:命名空间引入using XLua; 主要类LuaEnv luaEnv = new LuaEnv();//最好全局只有一个luaEnv.Dispose();//Lua关闭,一般在程序关闭时调用通过字符串运行Lua luaEnv.DoString("print('hello wor...
2020-12-29 16:57:00
476
原创 Lua 语法
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。打印语句Print("Hello SDHK")注释--注释--[[ 注释段--]]关键词and break do else elseif end false for function if..
2020-12-24 17:25:47
464
原创 C#设计模式:23.解释器模式 u3d学习总结笔记本
解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子,这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。就比如正则表达式,它就是解释器模型的一种应用,解释器为正则表达式定义了一个文法,如何表示一个特定的正则表达式,以及如何解释这个
2020-10-29 18:45:16
287
原创 C#设计模式:22.原型模式 u3d学习总结笔记本
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。与通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对.
2020-10-29 17:25:45
173
原创 C#设计模式:21.迭代器模式 u3d学习总结笔记本
迭代器模式(Iterator Pattern)提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。迭代器模式属于行为型模式。使用场景:访问一个聚合对象的内容而无须暴露它的内部表示。 需要为聚合对象提供多种遍历方式。 为遍历不同的聚合结构提供一个统一的接口。优点:它支持以不同的方式遍历一个聚合对象。 迭代器简化了聚合类。 在同一个聚合上可以有多个遍历。 在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。缺点:...
2020-10-29 16:26:28
134
原创 SDHK_Tool 个人工具类目录 u3d学习总结笔记本
目录Static 静态类SS_EulerAngleConversion 欧拉角,角度转换计算SS_EulerAngleRotation 欧拉角旋转SS_File 用于Unity3d的资源文件读写类SS_Mathf 数学类SS_Ray 射线检测类SS_TriangleSolutions 用于unity3d解三角形SS_TriggerMarker 标记器SS_...
2020-10-29 11:06:54
567
原创 C#设计模式:20.装饰器模式 u3d学习总结笔记本
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。对客户端透明的方式扩展对象的功能,继承关系的替代方案。场景:1.需要扩展一个类的功能2.需要动态的给一个对象增加功能,也可以动态的撤销3.需要增加大量排列组合的功能,继承关系不现实优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。 比..
2020-10-28 19:01:11
199
原创 C#设计模式:18.适配器模式 u3d学习总结笔记本
适配器模式(Adapter Pattern)把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。其实这个设计模式的名字,已经把他的功能说明的很清楚了,就是将不同接口的类,运用适配器,使得可以使用同一接口统一调用。适配器可以是抽象类,并适配器模式的实现是非常灵活的,我们完全可以将Adapter模式中的“现存对象”作为新的接口方法参数,适配器类可以根据参数参数可以返回一个合适的实例给客户端。类的适配器模式是定义一个接口来实现客户端想要的方法,.
2020-10-24 18:23:41
174
原创 C#设计模式:16.备忘录模式 u3d学习总结笔记本
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。优点:1、给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态。 2、实现了信息的封装,使得用户不需要关心状态的保存细节。缺点:消耗资源。如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一..
2020-10-10 15:32:34
142
原创 UI自适应 Layout组件 u3d学习总结笔记本
用u3d自带组件做各种自适应UI1.Text单纯一个text比较简单通过Content Size Fitter这个组件就能使得text的边框适应字体进行缩放Horizontal为水平适应vertical 为垂直适应无约束最小尺寸首选大小此时的text高宽已经无法设置。通过字体数量和字体大小改变ui大小2.有背景的text指的是 按钮 等一些 自身为图片,子物体为text 的UI,需要根据子物体字体的...
2020-09-15 20:15:41
325
原创 C#设计模式:15.观察者模式 u3d学习总结笔记本
观察者模式(Observer Pattern)当一个对象被修改时,则会自动通知依赖它的对象。使得每当一个对象改变状态,则所有依赖它的对象都会得到通知并自动更新。观察者模式属于行为型模式。一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。优点:1、观察者和被观察者是抽象耦合的。2、建立一套触发机制。缺点:1、如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。2、如果在观察者和观察目标之间有循环..
2020-07-31 18:15:23
227
原创 C#设计模式:13.命令模式 u3d学习总结笔记本
命令模式(CommandPattern)命令模式属于对象的行为型模式。命令模式是把一个操作或者行为抽象为一个对象中,通过对命令的抽象化来使得发出命令的责任和执行命令的责任分隔开。系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作,也可以考虑使用命令模式,命令模式的实现可以提供命令的撤销和恢复功能。优点:解除了请求者与实现者之间的耦合,降低了系统的耦合度。 对请求排队或记录请求日志,支持撤销操作。 可以容易地设计一个组合命令。 新命令可以容易地加入到系统中。缺点:因为针.
2020-07-22 14:35:29
201
原创 C#设计模式:12.组合模式 u3d学习总结笔记本
组合模式(Composite Pattern)组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。在软件开发中我们经常会遇到处理部分与整体的情况,如我们经常见到的树形菜单,一个菜单项的子节点可以指向具体的内容,也可以是子菜单。类似的情况还有文件夹,文件夹的下级可以是文件夹也可以是文件。组合模式可以很好地解决这类问题,组合模式通过让树形结构的叶子节点和树枝节点
2020-07-21 10:50:48
248
原创 C#设计模式:11.享元模式 u3d学习总结笔记本
享元模式(Flyweight Pattern) 当对象数量太多时,将导致运行代价过高,带来性能下降,内存溢出等问题。为了解决这一问题便诞生了享元模式。把其中具有相同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。在实际使用中,能够共享的内部状态是有限的,因此享元对象一般都设计为较小的对象,它所包含的内部状态较少,这种对象也成为细粒度对象。使用场景:当频繁地从数据源读取数据时,读出的内容存在重复,那么需要使用享元模式(Flyweigh...
2020-07-20 15:21:14
160
原创 C#设计模式:10.建造者模式 u3d学习总结笔记本
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。建造者模式更加关注与零件装配的顺序。产品不需要抽象类,由于建造模式的创建出来的最终产品可能差异很大,所以不大可能提炼出一个抽象产品类。由于建造者隐藏了具体产品的组装过程,所以要改变一个产品的内部表示,只需要再实现一个具体的建造者就...
2020-06-09 18:25:21
255
原创 C#设计模式:9.工厂模式 u3d学习总结笔记本
工厂模式是用工厂方法代替new操作的一种模式。工厂方法封装了多个相关联类的new方法,每次实例化这些类的时候不需要new多次,只需要调用工厂类的对应方法即可实例化这些类,并且是通过使用一个共同的接口来指向新创建的对象。目录1.简单工厂(SimpleFactoryPattern)2.工厂方法(Factory Pattern)3.抽象工厂(Abstract Factory Pattern)1.简单工厂(SimpleFactoryPattern)简单工厂模式是类的创...
2020-05-30 17:52:16
407
1
原创 C#设计模式:8.有限状态机模式 u3d学习总结笔记本
有限状态机(Finite-state machine, FSM)—— 简称状态机所谓有限状态机就是决定我们游戏对象的当前状态和状态间的切换,状态机最终只能指向一个结果,由这个结果指向这个状态的行为,也就是执行的函数。一,状态模式是具体的,针对每个需求有一个状态集,并为其实现特有的迁移机制。状态机是抽象的,不是针对特定的需求,而是对各种与相关的问题的进一步抽象,那么用状态机回头去实现状态模式的时候,只需要关注问题本身,而不用去关心如何实现,也就是说你只需要绘制出状态迁移图,状态机就能帮你...
2020-05-29 17:05:39
970
原创 C#设计模式:7.模板方法模式 u3d学习总结笔记本
模板方法 (Template Method )模板方法模式是基于继承的代码复用基本技术,在模板方法模式中,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中。把公共的内容提取到模板中,只留下部分让用户来填写。在软件系统中,将多个类的共有内容提取到一个模板中的思想便是模板方法模式的思想。定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。...
2020-05-19 17:29:18
231
原创 C#设计模式:6.策略模式 u3d学习总结笔记本
策略模式(Strategy Pattern)策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。定义算法集合,分别封装起来,让它们之间可以互相替换。模式类型:行为类模式。结构图:这个模式涉及到三个角色:环境(Context):持有一个Strategy类的引用。抽象策略(Strategy):这是一个抽象角色,通常由一个接口或抽象类...
2020-05-18 16:29:22
228
原创 C#设计模式:5.桥接模式 u3d学习总结笔记本
桥接模式(Bridge Pattern)桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。...
2020-05-11 14:09:22
236
原创 C#设计模式:4.中介者模式 u3d学习总结笔记本
中介者模式(Mediator Pattern)中介者模式属于行为型模式,它包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用,从而使它们可以松散耦合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用,保证这些作用可以彼此独立的变化。现应用最为广泛的是网络聊天室。主要解决:将多个对象间复杂的关联关系解耦,Mediator模式将多个对象间的控制逻辑...
2020-05-05 14:07:07
220
原创 C#设计原则:7.迪米特法则 u3d学习总结笔记本
迪米特法则(LOD)Law of Demeter,简称:LOD。一个对象应该对其他对象保持最少的了解,使得系统功能模块相对独立,这样当一个模块修改时,影响的模块就会越少,扩展起来更加容易。又叫最少知道原则问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。图片例子:...
2020-04-17 17:41:12
248
原创 C#设计原则:6.合成复用原则 u3d学习总结笔记本
合成复用原则(CRP)(Composite Reuse Principle,CRP)它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规范。继承复用破坏了类的封装性。因为继承会将父类的实现细节暴露给子类,父类对子类是透明...
2020-04-17 16:56:51
453
原创 C#设计原则:5.接口隔离原则 u3d学习总结笔记本
接口隔离原则(ISP)Interface Segregation Principe,简称:ISP。类的依赖关系应建立在最小接口上,不要都塞在一起。高层类不需要多余的接口。问题由来:写工具的时候,总会有考虑不全面的情况,例如根据单一职责原则把相关功能接口都综合集中在了一个类里面。然后导致在使用时,发现很多功能只会使用其中一个,其余功能完全是多余的。解决方案:...
2020-04-16 16:02:39
175
原创 C#设计原则:4.单一职责原则 u3d学习总结笔记本
单一职责原则 SRP:Single Reponsibility Principle,简称:SRP一个类只负责一项职责。就一个类而言,应该只有一个引起它变化的原因。问题由来:解决方案:...
2020-04-16 14:33:30
217
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人