# 消灭星星3D版素材 **Repository Path**: dearvictor/popStar ## Basic Information - **Project Name**: 消灭星星3D版素材 - **Description**: 用来做素材的消灭星星工程,包含编辑器和展示 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-03-13 - **Last Updated**: 2026-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 消灭星星 - 三消游戏 📝 项目简介 这是一个基于Unity开发的消灭星星(三消)游戏。玩家通过点击相连的同色星星进行消除,剩余星星会自动下落并左移,直到没有可消除的组合。 ![消除效果展示](https://foruda.gitee.com/images/1773391501988193548/0a7a4d48_10925882.gif "20260313144034_rec__20260313_16433568[00h00m00s-00h00m20s].gif") ✨ 核心功能 游戏玩法 点击消除:点击相连的同色星星区域,消除所有相连的星星 高亮提示:鼠标悬停时,相连的同色星星会高亮显示 物理破碎:消除的星星会碎裂成多个碎片,并向外飞散 自动下落:消除后上方的星星自动下落填补空缺 自动左移:整列为空时,右侧所有列自动左移 特色效果 拍碎动画:星星被消除前会有"抬起→拍下→压扁→碎裂"的动画效果 碎片挤压:夹在两个星星之间的碎片会被自动挤出 碎片消失:飞出屏幕或被挤压的碎片会在2秒后自动销毁 地图边框:可自定义大小、带碰撞体的游戏区域边框 🛠️ 技术架构 核心脚本 脚本 功能 GameManager.cs 游戏主逻辑,管理地图、消除、下落、左移 Star.cs 星星行为,包括颜色、高亮、移动动画 FragmentCollisionHandler.cs 碎片物理行为,挤压检测、自动销毁 MapEditor.cs 地图编辑器,支持自定义关卡设计 关键算法 连通区域检测:BFS广度优先搜索,查找相连的同色星星 物理破碎:使用RayFire插件实现网格碎裂 下落算法:逐列从下往上填补空缺 左移算法:检测空列,右侧整列左移 🎮 如何使用 基本操作 操作 功能 鼠标悬停 高亮相连的同色星星 鼠标左键点击 消除当前高亮区域 鼠标中键拖拽 移动摄像机视角(编辑器模式) 游戏流程 游戏自动生成随机地图(5x5) 鼠标悬停查看可消除区域 点击消除相连的同色星星 观察星星碎裂效果和碎片飞散 等待自动下落和左移完成 继续寻找新的可消除组合 🗺️ 地图编辑器 项目内置了可视化地图编辑器,可以自定义关卡: 编辑器功能 网格生成:自定义地图宽度、高度 笔刷工具:6种颜色笔刷 橡皮擦:擦除不需要的星星 范围填色:点击填充相连区域(Flood Fill) 笔刷大小:支持1-5的笔刷尺寸 保存/加载:将设计的地图保存为JSON文件 游戏测试:一键将当前地图加载到游戏场景 ![编辑器展示](https://foruda.gitee.com/images/1773391301899069476/8f605233_10925882.gif "20260313142208_rec_[00h00m00s-00h00m20s].gif") 编辑器快捷键 按键 功能 1-6 切换笔刷颜色 E 切换到橡皮擦 F 切换到范围填色 R 重置摄像机位置 📦 配置文件 地图数据格式 (JSON) json { "width": 10, "height": 10, "cellSize": 0.4, "stars": [ {"x": 0, "y": 0, "colorId": 1}, {"x": 1, "y": 0, "colorId": 2} ] } 可调节参数 在Unity Inspector中可以调节: 地图尺寸:宽度、高度、格子间距 动画速度:下落速度、左移速度 物理参数:爆炸力度、碎片弹性、摩擦力 视觉效果:边框颜色、粗细、碰撞体材质 🔧 依赖插件 RayFire 1.89:实现网格碎裂效果 Unity 2020.3+:推荐使用LTS版本 📁 项目结构 text Assets/ ├─ Scripts/ │ ├─ GameManager.cs # 游戏主逻辑 │ ├─ MapEditor.cs # 地图编辑器 │ ├─ Star.cs # 星星行为 │ └─ FragmentCollisionHandler.cs # 碎片物理 ├─ Prefabs/ │ ├─ Star.prefab # 星星预制体 │ └─ GridCell.prefab # 网格单元格 ├─ Materials/ │ └─ BorderMaterial.mat # 边框材质 └─ Maps/ # 保存的关卡文件 🚀 未来计划 分数统计系统 关卡选择界面 音效和背景音乐 移动端触控支持 更多特效和动画 📄 许可证 MIT License 👨‍💻 开发者 项目基于Unity开发 使用RayFire实现物理破碎 支持自定义地图编辑器 开始你的消灭星星之旅吧! 🎉