- 博客(14)
- 收藏
- 关注
原创 Unity状态模式实战:解决GameObject行为扩展难题
本文探讨了在Unity中使用状态模式解决GameObject行为扩展的问题。通过分析传统实现方式的局限性(脚本卸载、代码臃肿、预制体管理),提出了基于状态模式的解决方案。核心设计包括:1) 将Square类作为上下文;2) 定义ISquareState接口规范行为;3) 实现具体状态类(如MapSquareState)。该方案通过字典映射管理状态切换,有效降低了耦合度,使扩展新方块类型只需添加枚举值和对应状态类。相比传统方法,状态模式提供了更清晰的行为分离和更灵活的扩展机制,特别适用于需要频繁切换行为的游戏
2025-12-18 11:43:47
257
原创 Unity实战:从实践的角度了解事件中心
本文探讨了在Unity游戏开发中对象池管理与事件中心的应用实践。作者在开发砖块游戏时遇到对象池管理问题:砖块点击后需要返回对象池,但直接调用管理器方法导致高耦合。为此,作者设计了一个事件中心系统,通过单例模式实现全局事件管理,提供订阅、取消订阅和触发事件功能,有效解耦对象间的直接依赖。该系统包含调试功能,可追踪事件和监听者状态,并通过DontDestroyOnLoad保持场景切换时的持久性。这一解决方案优化了资源管理,提升了代码的可维护性。
2025-12-15 16:00:23
619
1
原创 Unity PPU实战:我的60像素格子无法紧密贴合?(绘画实践角度与开发角度)
摘要: 本文从实践角度探讨Unity中PPU(Pixels Per Unit)的概念与应用。当设计师使用60px画布绘制素材,而开发者设置PPU为64时,会出现格子无法完美贴合的问题。解决方案包括:1)重绘64px素材;2)通过代码调整位置;3)修改PPU为60(导致轻微形变)。文中选择代码调整,计算出60px素材在PPU 64下对应0.9375单位,最终实现贴合效果。文章强调设计师与开发者需沟通PPU设置,平衡设计意图与技术实现。作者以双重身份分析问题,旨在通过实践案例解析PPU的核心作用。 (字数:15
2025-11-27 16:48:02
239
1
原创 Jared Halpern《Unity 2D 游戏开发 使用C#进行独立游戏编程》阅读问题及实践
本文分享了使用Unity 2022.3.61f1c1版本实践《Unity 2D游戏开发》时遇到的问题和解决方案。内容包括:Cinemachine组件创建方式变更、健康条脚本执行顺序问题、UI预制件修改建议、单例模式理解、状态机过渡规则说明等。特别对屏幕坐标系斜率计算原理进行了详细解释,并指出新版Unity在屏幕适配功能上的变化。作者强调持续实践是提升游戏开发能力的关键,提供了针对书籍内容与新版Unity差异的实用调整建议。
2025-11-24 11:37:34
817
原创 关于NerFStudio修改其3dgs实现问题(涉及gsplat)
本文介绍了如何修改NerFStudio中3DGS的实现,主要涉及gsplat库的源码获取与编译。内容包括:1)环境准备与验证;2)实现原理分析;3)详细步骤:检查gsplat版本、克隆对应源码、补充依赖库、编译安装;4)修改后的测试方法;5)重要注意事项。特别指出修改C++/CUDA代码后必须重新编译,而仅修改Python文件则无需重新编译。该指南为开发者提供了完整的3DGS实现修改流程。
2025-10-17 14:38:43
251
1
原创 openMVG+openCV(手动)配置,构建自己的pipeline,创建自己的项目。
openMVG+openCV配置,构建自己的pipeline 项目,创建自己的项目到openMVG下。
2024-03-14 21:08:51
2041
2
原创 openMVG_main_SfM_Localization 中 exportToPly found_pose_centers.ply 在meshlab只有单个点不显示的问题
openMVG定位历险记
2023-12-27 20:12:41
542
2
原创 关于openMVG如何调试python代码pipeLine中C++的Filesmain_SfMInit_ImageListing的问题
openMVG调试software中项目的方式。
2023-11-10 20:37:51
333
1
原创 Intrinsic shape signatures: A shape Descriptor for 3D Object Recognition 论文阅读
ISS算法,一种点云形状描述子。
2023-07-22 16:24:52
512
2
原创 吴恩达深度学习作业(week2)-(1)
b=np.sum(a,axis=1,dtype=None,out=None,keepdims=True) ### 即计算没一行的总值 组成一个向量。x = np.linspace(-5, 5, 100) #numpy中的切分,即将x=-5到5中的值切成100份创建一个数组。x = np.array([1, 2, 3])## 如果是([[1,2,3]])就会创建向量,且为1行3列的行向量。sigmoid的导数 sigmoid=a(x) a(x)`=a(x)(1-a(x))
2022-11-13 20:41:39
2315
1
原创 基于狂神说教程中MySQL 服务启动后自动停止,以及ERROR 1064的版本问题。
所以把F:\environment\mysql-8.0.31 中的my.ini 的 skip-grant-tables 前加#注释掉即可。因为是根据教程来配置的,所以你可能没有my.ini,但可能会有类似的ini。MySQL 服务正在启动 . MySQL 服务已经启动成功。而且能够重复在命令框中 net start mysql。MySQL 5236 MySQL 已经停止。在任务管理器中的服务列会显示停止。如上我是mysql-8.0.31。MySQL 服务已经启动成功。MySQL 服务正在启动 .
2022-11-08 16:40:03
1075
原创 anaconda Prompt 引用模块报错 No module named
anaconda Prompt 引用模块报错 No module named
2022-10-14 20:34:52
896
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅