- 博客(61)
- 收藏
- 关注
原创 Flower Defense—UIFacade
它主要负责什么?它对外提供统一的 UI 操作入口,把 UIManager、Panel、Factory、AudioManager 和场景状态切换等多个子系统封装起来。外部代码只需要通过 UIFacade 进行面板添加、创建、销毁、场景切换和资源获取,不需要直接依赖这些具体模块。在 Flower Defense 中,UIFacade 还负责场景切换时的黑幕动画、当前面板字典管理,以及将 UI 面板放回对象池。这样可以降低 UI 模块之间的耦合,让场景切换和 UI 资源管理更加统一。它主要负责什么?
2026-10-31 22:04:37
48
原创 Flower Defens——对象池
实际游戏中使用的通用对象池。”的组合思想这体现了对象池使用中的关键原则:回收时清理状态,取出时恢复状态。Flower Defense 使用了基于的对象池。每种 Prefab 对应一个 Stack,获取对象时优先从池中 Pop;池为空时才通过工厂加载 Prefab 并 Instantiate。对象使用完后不会 Destroy,而是重置状态、SetActive(false),再 Push 回池中。
2026-10-31 21:04:17
147
原创 IBuilder.cs 接口
是一个建造者模式接口,用于标准化游戏对象及其组件的创建、数据填充和资源加载过程。它在项目中处于对象构建层,与工厂模式协作,但不属于 MVC 架构。通过实现该接口,可以统一管理塔、怪物、UI 等复杂对象的生成逻辑,提高代码可维护性。
2026-05-29 18:47:14
224
原创 TShit.cs和Star.cs
TShit(便便塔)是一个的塔脚本。从代码量上看,它非常简洁,只重写了Start()和Update()方法,没有添加任何新的字段或逻辑。这么简单的脚本有什么用?实际上,它代表了普通塔的标准模板——攻击行为完全由父类提供,子类只需根据自身特点微调初始化或攻击节奏即可。而便便塔的特殊效果(减速 debuff)实际上是在)中实现的,而不是在塔脚本中。
2026-05-29 17:19:43
237
原创 Crystal.cs
Crystal(水晶塔)是一个的特殊塔脚本。它代表一种,与普通塔的“发射子弹”方式完全不同。而是生成一个拉伸模型连接塔与目标,通过模型上的Bullect组件(如)周期性造成伤害。其特点:每帧更新光束的位置和缩放,保持视觉连接。无攻击冷却,攻击频率由子弹脚本控制。预取和回收光束资源,遵循对象池模式。持续播放攻击音效。普通塔(如便便塔、风车塔)会生成子弹对象飞向目标,而水晶塔生成一个(类似激光束),直接连接塔与目标,并持续造成伤害(通过Bullect脚本处理持续伤害逻辑)。
2026-05-28 15:33:08
352
原创 Tower.cs
管理:⭐⭐⭐⭐⭐),主要包括:塔的攻击范围(碰撞体、可视化范围)目标选择逻辑(在范围内自动锁定敌人,支持集火机制)塔的销毁与回收(对象池复用)与脚本的协调注释说“塔的共同特性”,与负责“战斗行为”:攻击 CD、发射子弹、升级/出售的经济操作。Tower负责“范围与目标管理”:检测进入范围内的敌人、决定当前攻击目标、销毁塔时的对象池回收。
2026-05-28 09:22:31
385
原创 Tower.cs的补充
Tower脚本是塔的‘雷达与目标管理系统’,它检测进入攻击范围的敌人,根据集火优先级锁定目标,并与协同完成攻击,同时支持等级成长和对象池回收,是塔防战斗循环的核心中枢。
2026-05-28 09:20:57
40
原创 TowerPersonalProperty.cs
是,管理塔的攻击冷却、目标锁定、子弹生成、等级、价格以及升级/出售逻辑。它并不直接处理寻敌,而是依赖外部为其设置。
2026-05-21 20:12:07
352
原创 StarBullect.cs
是一个,只实现了碰撞伤害,没有移动、对象池、特效等常见机制。它没有继承Bullect很可能是(例如作为无需移动的瞬间伤害触发器)或者是。与标准子弹类对比,它缺少了塔防游戏子弹应有的生命周期管理,需要根据实际需求决定是否要整合到Bullect体系中。
2026-05-16 00:30:37
246
原创 TshitBullect.cs
这个脚本定义了一种特殊的子弹——),它继承自一个通用的子弹基类Bullect。它的特殊之处在于:击中敌人后可以附加减益效果,比如减速、持续伤害等,并且减益效果的强度和持续时间会随着炮塔等级(towerLevel)提升。
2026-05-12 21:08:55
61
原创 图集自动切割(Radish)
生成同名的文件夹,内含已切割的png文件,但是Texture Type为Default,需自己改为Sprite (2D and Ul)
2026-05-05 00:16:37
36
原创 TouchPad(单例)
TouchPad是一个底层触摸输入管理器,直接挂载在场景中的 UI 或游戏物体上,通过实现 Unity 事件系统接口((供外部订阅,如(发送给碰撞体上的组件)
2026-04-24 23:51:15
420
原创 TouchPadEventArgs
是一个可序列化的参数类,用于在触摸事件中传递数据。它封装了:射线检测结果(碰撞体列表)触摸位置(屏幕坐标、世界坐标)拖拽方向和优先级轴向第一个选中的物体引用该类在TouchPad中被创建和填充,然后通过传递给订阅者(如。
2026-04-24 22:50:17
58
原创 Action- C# 内置的委托类型
2. 带参数 Action(最常用)3. 静态 Action(全局事件,跨脚本调用)4.只读 / 只能外部订阅、内部调用三、Action 完整使用示例(Unity 可直接运行)示例 1:无参数 Action(按钮点击 / 技能释放)另一个脚本订阅:示例 2:带参数 Action(扣血、得分)订阅:四、关键语法说明1. 必须加!不加 会报 空引用异常,Unity 中必须写。五、Action 与 普通委托 的区别你也可
2026-04-24 16:59:45
595
原创 MK - Grand Mahjong Game-
Splash”场景的命名,是取了“闪屏”或“启动画面”(Splash Screen)这个专业术语的首词,既精确描述了场景的核心功能,也符合游戏开发界的通用命名惯例。目的:推测是项目自定义脚本,用于根据屏幕分辨率实时调整 Rect Transform 的尺寸或缩放,进一步确保 UI 填满相机视野。(后面解析)原生 Canvas 没有这个选项,说明开发团队加了一个扩展组件,可能是为了处理某些极端宽高比时的黑边问题。Projection(投影模式):2D 游戏通常使用(正交)模式;3D 游戏则使用。
2026-04-23 21:09:40
410
原创 TouchManager
负责将用户的滑动操作转换为游戏世界中物体的实时位移,并协调拖拽的开始、进行中和结束后的重置逻辑。它是麻将消消游戏交互层的核心组件之一。
2026-04-23 20:25:11
234
原创 《C#数据结构与算法》—201线性表
用一块地址连续的空间依次存放线性表的数据元素GetLengthintClearvoidIsEmptybooltruefalselist[0]value-1代码: IList.cs代码的实现:SeqList.cs。
2025-05-02 16:05:02
634
原创 《C#数据结构与算法》—二分查找法和顺序查找
对于15个元素使用二分查找最多进行了 4 次比较。log2 15 =4 对于n个元素使用二分查找最多进行了log2n次比较。也就是对于未命中查找的情况。也就是对于未命中查找的情况,需要遍历所有的元素查询。对于15个元素使用顺序查找最多进行了15次比较。排列进行高效查找(排序算法的作用)每次比较都将数据规模缩小一半。什么是二分查找算法?
2025-04-26 17:27:40
467
原创 xLua_002 C#访问Lua
CSharpCallLua.lua.txt2、访问table类型方法1:将Table映射到普通的Class类或 Strut结构体弊端:可以通过把类型加到GCOptimize生成降低开销CSharpCallLua.lua.txt方法2:将Table映射到一个interface 接口易出问题:interface 要加上特性[CSharpCallLua]interface 要加上public 如果出现报错:InvalidCastException: This type must ad
2025-03-20 23:20:23
895
原创 xLua_001 Lua 文件加载
using XLua;using XLua;//输出文件名 helloworld//自定义loader为空输出顺序:自定义Loader ->> 系统内置的Loaderusing XLua;//字符串转为字节数组//通过System.Text.Encoding.UTF8转为字节数组//通过GetBytes() 来获取数组。
2025-03-18 23:10:05
342
原创 unity基础——Navigation导航系统
添加Off Mesh Link 组件(添加在Parent上)Palyer对象添加Nav Mesh Agent 组件。实现鼠标点击 位置 Player 移动的效果。导入unity项目中 新建scene。移动到 Target 代码。在unity文档中下载 组件。将想要生成网格的物体 改为。
2025-03-14 02:10:38
2264
原创 unity基础——3D画线
主要属性:positions(坐标点集合)、width(线条粗细)、material(外观材质)相比数组,支持动态扩容和便捷操作(Add/Clear等)Unity的组件类,用于在3D空间绘制连续线段。依赖Collider组件,用于准确定位绘制位置。静态方法,计算两个三维点之间的欧几里得距离。物理检测方法,发射不可见射线检测碰撞体。:每帧检测鼠标移动,满足条件时添加新点。使用List管理坐标点,自动处理内存。:线端顶点数,影响端点圆滑度。:拐角顶点数,影响转角平滑度。:初始化新线条,记录起始点。
2025-03-13 19:14:14
1168
原创 unity基础——地面(Physic Material)
物体与物体间的摩擦力,用Physic Material 材质去控制。通过修改 动静态摩擦力、弹力 来控制物体滑动。创建材质将它拖拽到 例如。
2025-03-12 14:56:18
408
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅