- 博客(6)
- 收藏
- 关注
原创 四、地图编辑器工具实现
本文介绍了Unity地图编辑器的实现过程。编辑器支持瓦片地图的导入、修改和保存,解决了资产加载问题:通过AssetDatabase.FindAssets方法成功读取瓦片资源,替代了原先无效的LoadAssetAtPath方式。文章还对比了三种GUI排版库的使用场景:GUILayout适用于通用界面,EditorGUI用于精确定位,EditorGUILayout适合编辑器自动布局。此外,针对交错数组的序列化问题,提出用结构体包裹内层数组的解决方案,实现了在Unity编辑器中的可修改性。这些方法为Unity编辑
2025-11-30 00:25:15
297
原创 三、敌人、塔、子弹基础逻辑实现,游戏管理器与关卡状态管理器实现
本文总结了游戏开发中碰撞检测和图层管理的技术要点:1)敌人与子弹的碰撞检测需要至少一方添加RigidBody才能触发回调函数;2)碰撞体设置IsTrigger属性决定是触发回调还是阻挡;3)Instantiate对象不可见问题源于图层顺序,2D项目中需注意排序图层设置(如Ground/Units/UI三层),通过渲染器控制显示优先级。这些技术细节对实现塔防游戏的核心机制至关重要。
2025-11-22 19:47:39
225
原创 二、瓦片地图的创建
本文介绍了在Unity中创建瓦片地图时遇到的素材导入问题。重点指出Texture2D格式转换后,瓦片大小取决于初始导入设置,特别是"每单位像素数"属性的重要性。该属性决定了图片像素与网格单位的换算比例,若设置不当会导致瓦片与网格不匹配。通过将128x128像素图片设置为128像素/单位,可确保瓦片完美贴合网格中的一格。
2025-11-21 07:57:12
201
原创 一、项目创建
打算做一个Unity引擎的2D塔防游戏,风格就类似于极简塔防,基本没有美术素材,只有游戏逻辑于简单小特效。第一次完整地用Unity3D制作一个游戏,记录一下。
2025-11-20 23:07:48
94
原创 std::move资源转移的具体实现原理
本文介绍了C++中move语义的实现原理和应用场景。move语义通过将变量转为右值并调用右值构造函数/赋值函数,实现资源所有权的转移而非拷贝。具体实现分为两步:move函数将变量转为右值,然后调用右值版本的重载函数。文中以vector为例展示了move构造与普通构造的区别,前者直接转移内存所有权而不复制数据。对于自定义类,C++会默认对支持move的成员调用move操作,开发者也可自定义右值构造函数。move语义主要适用于持有资源所有权(如指针、容器)的变量,能避免不必要的资源复制;对于基本数据类型则无用
2025-10-13 17:32:10
261
原创 UE5 对象池回收时的reset相关
文章摘要:在重置Actor对象时需要注意几个关键问题:1) 必须开启Capsule碰撞查询以解决AI导航失效问题;2) Mesh物理模拟复位需要分四步处理:关闭物理模拟、重置Mesh位置、复位所有物理体状态、重建物理状态;
2025-08-31 10:55:26
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅