logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Unity中C#状态模式详解

csharp// 选择目标状态机return;Repaint();// 绘制状态节点// 绘制状态转换// 如果是当前状态,高亮显示// 绘制箭头和标签// 通过反射获取所有状态// 获取状态转换信息#endif使用场景推荐实现优点简单状态(<5个)枚举 + switch简单直接,性能好中等复杂度经典状态模式结构清晰,易维护复杂AI/角色分层状态机。

文章图片
#unity#c##状态模式
Unity中C#状态模式详解

csharp// 选择目标状态机return;Repaint();// 绘制状态节点// 绘制状态转换// 如果是当前状态,高亮显示// 绘制箭头和标签// 通过反射获取所有状态// 获取状态转换信息#endif使用场景推荐实现优点简单状态(<5个)枚举 + switch简单直接,性能好中等复杂度经典状态模式结构清晰,易维护复杂AI/角色分层状态机。

文章图片
#unity#c##状态模式
C# 异步编程详解

理解async/await状态机:编译器将async方法转换为状态机合理使用ConfigureAwait:库代码使用false,UI代码根据需要选择正确处理异常和取消:避免未观察到的异常和资源泄漏避免阻塞异步代码:不要使用.Result或.Wait()考虑使用ValueTask:对于可能同步完成的高频调用利用异步流:处理大量异步数据注意线程上下文:了解执行在哪个线程上恢复。

文章图片
#c##开发语言#windows
Unity 中的反射使用详解

性能:避免在 Update 等频繁调用的方法中使用反射平台兼容性:注意 IL2CPP 和 AOT 平台的限制缓存优化:对频繁使用的反射结果进行缓存安全考虑:特别是对于用户输入的反射调用要进行验证正确使用反射可以极大提高 Unity 项目的灵活性和可扩展性,特别是在编辑器工具开发、配置系统和插件架构中。

文章图片
#unity#游戏引擎#c# +1
C# 委托/事件/UnityEvent 详解

csharp// 自定义委托// 基于自定义委托的事件set= value)委托:是基础,用于方法引用和回调事件:基于委托,提供更好的封装,适合组件间通信UnityEvent:Unity专用,提供编辑器集成,适合非程序员配置在Unity开发中:使用C#事件处理纯代码逻辑使用UnityEvent处理需要在编辑器中配置的交互两者可以结合使用,发挥各自优势。

文章图片
#c##开发语言
Unity 资源热更新管理

接上一篇的AssetBundle管理,完善HotUpdateManager 类,实现完整的资源热更新系统:csharp/// 更新模式Full,// 全量更新Differential,// 差分更新Smart// 智能更新(根据网络状况自动选择)/// 更新状态Idle,// 空闲Checking,// 检查更新Downloading,// 下载中。

文章图片
#unity#游戏引擎
Unity AssetBundle 管理与加载流程详解

资源热更新按需加载(减少初始包体大小)DLC 内容分发平台适配(不同平台使用不同资源)合理规划 Bundle:按功能模块、使用频率划分异步加载:避免主线程卡顿依赖管理:确保先加载依赖资源内存管理:及时卸载不再使用的资源版本控制:实现可靠的热更新机制错误处理:网络异常、文件损坏等情况的处理性能监控:添加加载时间、内存使用监控。

文章图片
#unity#游戏引擎
Unity 对象池工具类优化版本

集成了多种高性能技术和模式:csharp#region 核心接口/// 超快速对象池接口(零GC分配)T Rent();/// 池化策略接口T Create();#endregion#region 环形缓冲池(Lock-Free,零GC)/// 基于环形缓冲区的超高速对象池(线程安全)// 使用固定数组避免GC// 线程安全计数器// 性能监控?// 初始化空闲链表i++)

文章图片
#unity#游戏引擎
Unity C# 中的 Unsafe 代码详解

Unsafe 代码是 C# 中允许直接操作内存和指针的特性,它绕过了 CLR(公共语言运行时)的一些安全检查。在 Unity 中,使用 Unsafe 代码可以:直接操作内存地址使用指针类型进行底层内存操作提高特定场景下的性能性能关键代码:需要极致优化的算法原生代码交互:与 C/C++ 库交互内存操作:需要直接内存操作的任务数据处理:大规模数据处理和变换。

文章图片
#unity#c##lucene
    共 14 条
  • 1
  • 2
  • 请选择