- 博客(60)
- 收藏
- 关注
原创 迭代器(IEnumerable) 和 列表(List) 的区别
数据只在遍历时生成,不会立即占用内存。每次只保留当前迭代项的内存,适合处理大数据集(如百万级数据)可以表示理论上无限长的序列(如传感器数据流)无法直接查看所有元素(需转换为List)编译器会生成状态机类,轻微性能损耗。
2025-08-14 10:58:05
1092
原创 C# 文件操作
DriveInfo**枚举类型:**DriveTypeDriveInfoNTFSFAT32DriveTypeNameTotalSizeDriveTypeFixedCDRomNetworkRemovableNTFSdriverNamedriver10241024。
2025-08-14 10:52:53
1067
原创 C# 和Unity 中的建造者模式 详解
简单工厂模式又称为静态工厂方法模式,它定义一个工厂类,根据传入的参数不同返回不同的产品实例。定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
2025-08-14 10:49:44
799
原创 C# 和Unity 中的工厂模式 详解
简单工厂模式又称为静态工厂方法模式,它定义一个工厂类,根据传入的参数不同返回不同的产品实例。定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
2025-08-14 10:48:13
1052
原创 C# 和Unity 中的单例模式 详解
单例模式是C#中最常用的设计模式之一,但也是最容易被误用的模式。线程安全:确保多线程环境下也能保持单例延迟初始化:根据需求选择合适的初始化时机防御性编程:防止反射、序列化等方式破坏单例现代替代方案:优先考虑依赖注入容器管理单例需要严格控制实例数量全局访问点确实必要对象创建成本高且频繁使用只是为了方便访问而使用需要多态行为需要频繁测试的组件单例模式是一种强大的工具,但强大的工具需要负责任地使用。
2025-08-14 10:46:17
819
原创 C# 和Unity 中的原型模式 详解
需要避免昂贵的对象创建操作系统需要独立于对象创建和构成的方式需要动态加载或运行时指定对象类型对象状态变化频繁且需要保存历史状态关键要点优先考虑使用实现浅拷贝对于深拷贝,可以选择手动实现或序列化方式C# 9的record类型提供了简洁的原型模式实现注意处理循环引用和资源管理问题考虑使用原型注册表管理常用原型原型模式与C#语言的特性结合良好,合理使用可以显著提高系统性能和灵活性,特别是在需要创建大量相似对象的场景中。
2025-08-14 10:43:54
949
原创 C# 和Unity 中的观察者模式 详解
观察者模式()是一种,它定义了对象间的,当一个对象(被观察者/主题)状态改变时,所有依赖它的对象(观察者)都会自动收到通知并更新。
2025-08-14 10:41:57
975
原创 C# 和Unity 中的责任链模式 详解
需要动态决定请求处理者的系统多级处理流程(如审批、过滤)需要解耦请求发送者和接收者的场景关键实施要点明确定义每个处理者的职责范围提供灵活的链构建方式(支持动态调整)考虑添加短路机制提高性能为未处理请求提供明确反馈ASP.NET Core中间件管道日志处理系统异常处理流程事件处理系统合理使用责任链模式可以显著提高代码的灵活性和可维护性,但需要注意控制责任链的复杂度以避免性能问题和调试困难。
2025-08-14 10:40:24
1147
原创 C# 和Unity 中的命令模式 详解
需要实现撤销/重做功能的系统需要将操作排队或记录的场景需要解耦请求发送者和接收者的架构需要支持事务或宏操作的应用关键优势。
2025-08-13 15:48:58
1082
原创 C# 和Unity 中的解释器模式 详解
特定领域语言:需要为特定领域定义简单语言灵活规则系统:业务规则需要动态配置数学表达式:需要解释执行公式关键优势✅ 易于实现简单语言的解释执行✅ 灵活扩展语法规则✅ 分离语法定义与执行适用限制❌ 不适合复杂文法(类爆炸问题)❌ 性能不如编译执行❌ 维护成本随文法复杂度增加在实际开发中,应权衡需求复杂度,对于简单DSL可以使用解释器模式快速实现,对于复杂语言处理建议使用专业解析工具。
2025-08-13 15:46:26
495
原创 C# 和Unity 中的迭代器模式 详解
迭代器模式允许你遍历一个集合而不需要了解集合的底层结构(数组、列表、哈希表等)。它通过提供一个迭代器对象来实现这一目标,该迭代器对象知道如何遍历特定的集合。迭代器模式是C#中一个强大且常用的模式,它通过IEnumerable和IEnumerator接口以及yield关键字提供了优雅的集合遍历方式。理解迭代器模式不仅可以帮助你更好地使用C的集合功能,还能让你在需要自定义集合类型时设计出更清晰、更灵活的API。
2025-08-13 15:44:08
807
原创 C# 和Unity 中的中介者模式 详解
中介者模式定义了一个对象来封装一组对象之间的交互方式,使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。对象间存在大量直接连接系统组件难以复用交互逻辑分散难以理解需要集中控制对象间通信定义清晰的中介者接口使同事类只依赖于中介者将复杂的交互逻辑封装在中介者中考虑使用事件或委托简化实现正确使用中介者模式可以显著降低系统复杂度,提高代码的可维护性和灵活性。
2025-08-13 15:42:20
1144
原创 C# 和Unity 中的备忘录模式 详解
备忘录模式提供了一种状态恢复机制,使得对象可以回滚到之前的状态。Originator(发起人):需要保存状态的对象Memento(备忘录):存储发起人对象的内部状态Caretaker(管理者):负责保存和管理备忘录对象需要撤销/重做功能的场景需要事务回滚的系统需要保存和恢复对象状态的任何应用明确划分Originator、Memento和Caretaker角色合理设计备忘录的存储结构考虑使用栈或列表管理多个备忘录根据需求选择简单或复杂的实现方式。
2025-08-13 15:39:23
689
原创 C# 和Unity 中的状态模式 详解
消除复杂的条件判断将状态相关行为局部化到单独的类中使状态转换显式化符合开闭原则,易于扩展新状态明确定义状态接口将上下文行为委托给当前状态对象合理管理状态转换根据需求选择简单或复杂的实现方式正确使用状态模式可以使复杂的状态逻辑变得清晰可维护,特别适合那些行为随状态变化而显著不同的场景。特性状态模式有限状态机实现方式面向对象,多态表驱动或switch-case状态表示类对象枚举或简单类型转换逻辑位置分散在各个状态类中集中在转换表或处理函数中扩展性容易扩展新状态。
2025-08-13 15:37:18
1175
原创 C# 和Unity 中的策略模式 详解
消除复杂的条件判断将算法实现与使用它的代码分离使系统更容易扩展新算法符合开闭原则明确定义策略接口将可变行为封装到具体策略类中通过组合而非继承来使用策略根据需求选择简单或复杂的实现方式正确使用策略模式可以使系统更加灵活和可维护,特别适合那些有多种算法变体且需要动态切换的场景。
2025-08-13 15:35:29
810
原创 C# 和Unity 中的模板方法模式 详解
最大化代码复用提供清晰的算法结构允许灵活扩展特定步骤保护算法结构不被破坏明确定义算法框架(模板方法)合理划分不变部分和可变部分使用抽象方法和虚方法提供扩展点考虑使用钩子方法增加灵活性正确使用模板方法模式可以使系统更加结构化且易于维护,特别适合那些有固定流程但某些步骤需要变化的场景。
2025-08-13 15:08:25
1234
原创 C# 和Unity 中的访问者模式 详解
分离数据结构与数据操作集中相关操作到一个访问者中简化元素类的职责便于添加新操作明确定义元素接口和访问者接口在元素类中实现Accept方法为每种操作创建具体访问者类合理设计对象结构类来管理元素集合正确使用访问者模式可以使系统更加灵活和可维护,特别适合那些数据结构稳定但需要频繁添加新操作的场景。
2025-08-13 13:02:44
1046
原创 C# 和Unity 中的适配器模式 详解
系统升级时新旧组件共存集成第三方库统一不同子系统之间的接口明确目标接口和适配者接口通过组合(对象适配器)或继承(类适配器)实现适配保持适配器的单一职责考虑使用工厂模式管理适配器创建。
2025-08-13 10:34:11
944
原创 C# 和Unity 中桥接模式的 详解
需要避免多层继承导致的类爆炸抽象和实现需要独立扩展需要在运行时切换实现明确定义抽象部分和实现部分接口使用组合连接抽象和实现通过扩展抽象和具体实现来增加新功能考虑使用工厂来创建和管理桥接对象正确使用桥接模式可以使系统更加灵活和可扩展,特别适合那些有多个独立变化维度的场景。
2025-08-13 10:31:49
389
原创 C# 和Unity 中的组合模式 详解
需要表示"部分-整体"层次结构需要统一处理简单和复杂元素需要递归处理整个结构明确定义组件接口区分叶子节点和复合节点考虑使用透明式或安全式实现可以结合其他模式(如访问者)增强功能正确使用组合模式可以使客户端代码更简洁,系统结构更清晰,特别适合处理具有层次结构的对象集合。
2025-08-13 10:29:09
933
原创 C# 和Unity 中的装饰模式 详解
需要动态、透明地添加职责不适合使用子类扩展的场景需要能够方便地撤销功能定义清晰的组件接口装饰器继承组件接口并持有组件引用具体装饰器实现扩展功能可以组合多个装饰器形成功能链正确使用装饰模式可以保持代码的扩展性和灵活性,避免因功能扩展导致的类爆炸问题。
2025-08-13 10:26:14
1162
原创 C# 和Unity 中的外观模式 详解
需要为复杂子系统提供简单接口需要减少客户端与子系统的耦合需要分层设计系统架构识别系统中的复杂部分创建外观类封装这些复杂性客户端只与外观交互考虑使用依赖注入管理依赖正确使用外观模式可以显著提高代码的可维护性和易用性,特别适合大型系统和框架设计。
2025-08-13 10:09:02
416
原创 C# 和Unity 中的享元模式 (Flyweight Pattern) 详解
享元模式关注的是状态共享,通过分离内部状态和外部状态来减少内存使用对象池关注的是实例重用,通过避免重复创建销毁来提升性能粒子系统管理:共享粒子效果配置,减少内存使用敌人/NPC对象池:共享敌人数据,优化大量相似敌人的性能地形区块管理:共享地形纹理和设置,优化大型场景子弹/弹道管理:共享子弹属性,优化射击游戏性能享元模式的优势显著减少内存使用提高游戏性能简化大量相似对象的管理便于统一修改共享属性。
2025-08-13 10:04:34
618
原创 C# 和Unity 中的代理模式 (Proxy Pattern) 详解
资源管理:通过代理实现资源的异步加载和缓存,优化性能网络通信:管理网络请求队列、重试机制等,提高通信可靠性性能优化:根据设备性能动态调整渲染质量或其他计算密集型操作平台交互:简化Unity与原生平台(如Android)的通信AI导航:封装复杂的导航逻辑,提供更简单的接口多媒体处理:统一不同格式的多媒体处理接口。
2025-08-07 11:26:07
755
原创 Unity IIS-Web.Config 配置文件生成工具
Unity 编辑器工具,可以帮助开发者自定义生成 IIS 服务器所需的 web.config 配置文件,包含 CORS 设置、MIME 类型映射和压缩配置。
2025-08-05 14:34:41
385
原创 Unity 相机控制XZ面平移,Y轴垂直移动,范围控制(源码)
注释很详细了,主要是为解决透视相机情况下不同高度 不同fov下的边界范围变化的问题.
2025-08-04 16:44:42
171
原创 Unity GIS Terrain Loader 2.4 常用API
// 地理坐标与Unity世界坐标转换工具。#region 坐标转换核心API。
2025-08-01 12:57:58
269
原创 Unity GIS Terrain Loader 2.4 中文文档
描述GIS地形加载器(GIS Terrain Loader)是一款运行时-编辑器插件,支持将地理数据直接导入Unity引擎。它不仅能加载真实世界的地形数据,还能兼容从各类GIS软件或外部地形生成工具(如GlobalMapper、QGIS、WorldMachine、ArcGIS、SAS.Planet等)导出的自定义地形数据。GIS地形加载器通过加载栅格(Raster)、矢量(Vector)和数字高程模型(DEM)数据快速创建地形,使海量数据的导入与修改变得高效便捷。
2025-08-01 12:50:19
1685
原创 Unity Assets同级文件夹详解 && 版本控制建议
在Unity项目中,文件夹是一个特殊的文件夹,它通常包含项目所依赖的包(Packages)的信息。一般来说都需要进行版本控制作用: 文件是 Visual Studio 的解决方案文件,通常在您使用 Visual Studio 作为 Unity 编辑器的代码编辑器时自动生成。它用于管理和组织项目的多个代码文件、库、项目引用等,确保开发者能够在 Visual Studio 中方便地进行代码编写、调试和管理。是否需要版本控制:通常有以下两种观点:
2025-08-01 12:31:21
1228
原创 Unity Assembly Definition 全面详解
Assembly Definition(程序集定义,文件扩展名为.asmdef)是Unity用于定义和管理C#程序集的配置文件。通过它,开发者可以将项目代码划分为多个独立的程序集(Assembly),而不是默认将所有脚本编译到单一的程序集中。程序集在C#中是一个基本概念,它是代码的编译单元,包含编译后的类、结构体等类型,并定义了对其他程序集的引用关系。在Unity中,程序集最终会被编译为DLL文件。编译阶段程序集名称包含的脚本位置1Plugins、Standard Assets下的运行时脚本2。
2025-07-31 10:10:06
1780
原创 Unity Project Settings - Graphics 设置说明
通过合理配置Graphics设置,可以显著提升项目性能和兼容性。建议在项目早期确定渲染管线方案,并根据目标平台调整性能分级设置。:确保关键着色器总是包含在构建中。:切换管线后需要重新配置材质。:指定项目使用的渲染管线。
2025-07-23 09:31:51
683
原创 Unity Project Settings - Input Manager设置说明
在 Unity 的 Project Settings > Input Manager 中,您可以配置各种输入轴。根据项目需求选择合适的输入系统,小型项目可使用旧版系统快速开发,中大型项目推荐使用新版输入系统以获得更好的灵活性和扩展性。Unity 的新版输入系统需要单独安装 Input System Package,提供更强大和灵活的输入处理方式。
2025-07-23 09:30:49
1004
原创 Unity Project Settings - Input Manager设置说明
在 Unity 的 Project Settings > Input Manager 中,您可以配置各种输入轴。根据项目需求选择合适的输入系统,小型项目可使用旧版系统快速开发,中大型项目推荐使用新版输入系统以获得更好的灵活性和扩展性。Unity 的新版输入系统需要单独安装 Input System Package,提供更强大和灵活的输入处理方式。
2025-07-23 09:30:17
1200
原创 Unity Project Settings - Physics设置说明
通过合理配置Physics设置,可以显著提升物理模拟的准确性和性能。建议根据目标平台和游戏类型调整参数,并在不同设备上进行充分测试。
2025-07-23 09:29:27
986
原创 Unity Project Settings - Physics 2D设置说明
通过合理配置Physics 2D参数,可以打造出既真实又高效的2D物理效果。建议根据游戏类型在开发早期确定基础参数,并在不同设备上进行充分测试验证。
2025-07-23 09:28:33
1463
原创 Unity Project Settings - Quality Settings 详解表
复制现有预设级别重命名并调整参数// 使用自定义Ultra预设。
2025-07-23 09:27:24
1412
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅