重装机兵重构
背景
看到 《大灾变:黑暗之日》 竟然还在维护,突然很感动,想到了重装机兵在国内应该也有一定的受众。于是,再次开始游戏吧。
过程
Day1
- 安装 Unity Hub
- 按照这个视频一步步学习简单的2d物理引擎 https://learn.unity.com/tutorial/playground-get-started-on-your-first-game?language=en#
Day2
按照这个教程开始2d游戏的高阶基础 https://learn.unity.com/tutorial/set-up-tilemap-collision?uv=2022.3&courseId=64774201edbc2a1638d25d18&projectId=6477424bedbc2a1473e5fce4# ,
人物可以移动,可以和sprite碰撞, 也可以和tilemap 碰撞
- 认识 Main window
- 认识 Context Menu
- 认识 Hierarchy Menu
- 认识 Project Menu
- 认识 Inspector Menu
- 认识 物理引擎 Rigidbody 2D
- 认识 碰撞器 Box Collider 2D
- 认识 Grid + TileMap
- 认识 Palette (tileSet)
- 认识 Rect Tool
- 认识 prefab 的作用
Day3
继续昨天的教程, 人物移动可以扣血回血, 并在血条上体现, enemy 的巡逻
- 认识 Box Collider 2D 的is Trigger 会导致可以穿透,并有事件
- 认识 Box Collider 2D 的 auto Tiling
- 认识 UI Builder(UI Document)
- 认识 VisualElement
- PlayerController 的碰撞脚本和静态的 UIHandler 进行血量交互
- 认识 Animator
- 认识 Animation
- 认识 Blend Tree
Day4
- Blend Tree 增加 transtion
- 认识 Layers (用于发射子弹)
- 认识 Edit > Project Settings… > Physics 2D -> the Layer Collision Matrix
- 认识 Raycasting
- 遇到了子弹射出去不移动的问题
- 遇到了子弹从enemy身上穿过去的问题
- 实现了对话弹出ui
- 认识cinimachine (摄像头碰撞)
Day5
- 认识 Audio Source
- 认识 Audio Source 的 Spatial Blend
- 认识 Effects -> Particle System
- 认识 粒子的 Radius 和 angle
- 如何手搓动画, 主要是关键帧
- Editor -> Project Setting -> Player 设置分辨率,版本
- File -> Building Profile -> 设置scene -> Build And Run
Day6
- 使用 UIDocument 增加游戏入口 Main , 监听 Enter 利用 SceneManager 切换到另一个场景
- unity store 购买免费的 DOTWEEN 插件, 然后实现场景切换时候的fade动画
Day7
- 复习实现 NPC 的弹窗对话
- 文字的打字机特效
- 自动滚动到ScrollView 的最下面
Day8
- 修复刚进入场景是 animator 迟缓(关闭Transitions 的 has Exit time)
- 在Moving(Blend Tree) 的基础上增加 Idle 的 Blend Tree
- 把6张真人的照片 去除背景, 然后处理成 像素图
- 学习战斗系统 英文教程, 在b站上看的盗版的
- 认识 Rigidbody 2D 的 Body Type: Dynamic / Kinematic / Static
- 认识 Rigidbody 2D 的 Collistion Detection: Discrete / Continuous
2025春节
Day9
- 参考b站上的中文教程
- 认识 Physics2D.OverlapCircle, 实现仇恨范围, 敌人自动追踪
- 认识 Cinemachine vs Camera Folllow
Day10
- 认识PlayerInput(Script) 和 InputAction 的区别
- 认识跨脚本调用,除了使用static 方法, 还可以使用 gameObject.BroadcastMessage()
- 在animation里面插入关键帧, 实现动画打击(假设是4帧, 就是1,2 帧 disable, 3帧enable, 4帧disable)
Day11
- 利用Collider 的 isTriger实现击退效果, 被伤害动画
- 实现死亡效果(死亡的动画插入event, 然后Destory掉 gameObject)
- 认识 TextMeshPro, 实现漂浮文字
- 实现漂浮文字的暴击效果, 动画效果
至此,动画相关除了持久化都已经测试结果,开始地图篇