随笔分类 - unity / 勇士传说
摘要:打包前需要一个初始场景 新建一个场景,名叫Initialization,然后在它下面挂载一个 GameObject 名叫InitialLoad,上面挂载一个脚本InitialLoad,内容为 using System.Collections; using System.Collections.Gen
阅读全文
摘要:打开设置面板 UIManager 注册了设置按钮的监听 如果 pausePanel 原来是 active 的话,则隐藏它,并取消暂停。如果 pausePanel 原来不是 active 的话,则显示它,并暂停游戏 调节音量 PausePanel 上有个滑动条,记录了音量。当暂停事件触发的时候,从 a
阅读全文
摘要:添加虚拟手柄 如上图所示,绘制虚拟手柄,包括左侧操作杆和右侧NESW键 给左侧操作杆添加 On-Screen Stick 给右侧按钮添加 On-Screen Button 因为我们使用的是新输入系统,所以这些虚拟按键就能直接使用了 PC 版不显示虚拟手柄 使用 UNITY_STANDALONE 宏,
阅读全文
摘要:安装 newtonsoftjson newtonsoftjson 是一个比 JsonUtility 更好的 JSON 工具,但是 Unity Registry 没办法直接下载,需要点击 Package Manager 左上角的 + 号,点击 Add package from git URL,输入 c
阅读全文
摘要:界面 先制作一个简单的 Game Over 面板 人物死亡的时候打开 Game Over 面板 创建一个 GameOver Event 人物死亡的时候触发 GameOverEvent UIManager 接收 Game Over Event UIManager 会打开 GameOverPanel,并
阅读全文
摘要:人物数值保存加载 在 Data 中添加一个 floatSavedData 然后在 Character 里面进行设置,读取血量之后记得通知血条栏更新血量 场景保存加载 Data 中增加一个字符串,用于存储场景信息。存储的时候传入一个 GameSceneSO,通过 JsonUtility 转换为 字符串
阅读全文
摘要:使用 ISaveable 标识可保存的数据 现在 C# 也像 Java 一样,接口可以写默认实现。大括号的写法和=>的写法是完全一致的 使用 DataManager 来统一管理所有数据 using System.Collections; using System.Collections.Generi
阅读全文
摘要:制作一个可以点亮的存储点 切图 第一张是存储点的基座,第二张是存储点上面的文字 将它们组合在一起就是存储点了 让存储点可交互 核心代码与宝箱的代码完全一致 using System.Collections; using System.Collections.Generic; using UnityE
阅读全文
摘要:实现新的冒险 添加 New Game Event SO 使用 Void Event SO 创建 New Game Event SO 点击新的冒险发布事件 订阅新的冒险事件 由 SceneLoadManager 订阅事件 为了区分菜单场景和第一次加载场景,分别使用的 MenuScene MenuPos
阅读全文
摘要:最终形态 新建一个场景 Menu,将物品摆放上去,并在上面添加文字,文字使用 TextMeshPro,字体使用得意黑 此外还要注意,Game Scenes 里面要添加名为 Menu 的 GameSceneSO Menu 场景也要放到 Addressable 上面 制作完主场景之后,有两件事需要注意
阅读全文
摘要:DoTween 实现淡入淡出 定义淡入淡出事件 切换场景的时候发布淡入淡出事件 卸载场景的时候,蒙版变黑 场景加载完之后,蒙版变透明 创建 FadeCanvas 以及监听淡入淡出事件 项目相关代码 代码仓库:https://gitee.com/nbda1121440/2DAdventure.git
阅读全文
摘要:解决场景加载后人物坐标不正确的问题 在 SceneLoader.UnLoadPreviousScene 中,场景卸载掉之后,需要将人物隐藏 场景加载完之后,需要执行回调 在回调中,需要设置当前加载的场景,设置人物的坐标,显示人物,并发布场景完成后的事件 注意,afterSceneLoadedEven
阅读全文
摘要:使用 Addressable 如下图所示安装 Addressables 打开 Addressables 创建 Addressables Settings 创建完毕之后,就能在 Assets 目录下找到配置好的文件 我们把默认的 Group Name 改成 Scenes 然后选择场景,勾选 Addre
阅读全文
摘要:创建可互动接口 实现宝箱代码 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Chest : MonoBehaviour, IInteractable { priv
阅读全文
摘要:场景中叠加场景 将两个场景的公用部分提取到 Persistent 场景中,之后需要使用哪个场景,只需要把那个场景添加到 Persistent 场景下面就行了 注意,如果要往场景中添加物体的话,需要先把场景激活 添加宝箱 先切割宝箱图片,然后把宝箱放到场景中,给宝箱添加 Box Collider 2D
阅读全文
摘要:修改场景中的 Grid 它们都要有 Tilemap Collider 2D 组件,并且 Is Trigger 为 true 给 水 添加 Water 标签 人物碰到水就死亡 修改 Character.cs,增加 OnTriggerStay2D 方法 添加荆棘 然后再给荆棘添加 Attack 组件 项
阅读全文
摘要:免费音乐和音效 音效:https://assetstore.unity.com/packages/audio/sound-fx/free-casual-game-sfx-pack-54116 音乐:https://assetstore.unity.com/packages/audio/music/f
阅读全文
摘要:Cinemachine 安装 cinemachine 添加 cinemachine 添加完之后,需要将 Player 作为 Cinemachine 的 Follow 对象 之后摄像机默认就能跟随玩家了,我们还可以调整一些参数 通过设置 Dead Zone 给摄像机一个缓冲值,中心点没有离开缓冲区域的
阅读全文
摘要:动画 我们需要快速打断滑铲,所以没用结束滑铲 动画状态机中,使用了 isSlide 这个布尔变量 New State -> blueSlide0,需要 isSlide = true,立即进入 blueSlide0 -> blueSilde1,需要 isSlide = true,完整播放一次之后进入
阅读全文
摘要:滑墙的实现方式 动画 使用滑墙图片制作滑墙动画,只有一帧的动画 动画状态机中,增加了 onWall 这个 bool 变量,以及 blueWallSlide 这个状态 当 onWall == true 时,从 Jump 立即切换到 blueWallSlide 当 onWall == false &&
阅读全文