首页 > 其他分享 >8-3. 人物数值及场景的保存加载

8-3. 人物数值及场景的保存加载

时间:2024-02-29 11:23:27浏览次数:23  
标签:野猪 场景 读取 存储 保存 数值 加载

人物数值保存加载

在 Data 中添加一个 floatSavedData

然后在 Character 里面进行设置,读取血量之后记得通知血条栏更新血量

场景保存加载

Data 中增加一个字符串,用于存储场景信息。存储的时候传入一个 GameSceneSO,通过 JsonUtility 转换为 字符串。然后读取的时候,将保存的 string 反序列化为 GameSceneSO

场景是通过 SceneLoadManager 进行管理的,所以需要对它也添加 ISaveable 接口

存储的时候,就把当前的场景传进去。读取的时候,首先要判断是否有记录,如果有记录才读取场景和玩家的坐标,并重新加载场景

存储点记录

可以自己实现,我偷懒就不实现了

其它问题

我发现野猪的位置在场景加载后好像不正确,原因是加载事件产生的时候,此时野猪是不存在的,无法修改坐标。等场景加载完毕之后,野猪的位置回到了初始点,所以场景加载会导致野猪的问题不正确。

所以如果要做的好一点的话,场景加载和位置加载应该要分成两个事件会比较好

我赶进度,就不做了

项目相关代码

代码仓库:https://gitee.com/nbda1121440/2DAdventure.git

标签:20240229_1102

标签:野猪,场景,读取,存储,保存,数值,加载
From: https://www.cnblogs.com/hellozjf/p/18043048

相关文章

  • 8-2. 数据结构及坐标保存加载
    使用ISaveable标识可保存的数据现在C#也像Java一样,接口可以写默认实现。大括号的写法和=>的写法是完全一致的使用DataManager来统一管理所有数据usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.InputSystem;pu......
  • 7-6. 主场景制作
    最终形态新建一个场景Menu,将物品摆放上去,并在上面添加文字,文字使用TextMeshPro,字体使用得意黑此外还要注意,GameScenes里面要添加名为Menu的GameSceneSOMenu场景也要放到Addressable上面制作完主场景之后,有两件事需要注意主场景不显示人物血条主场景不能控制人......
  • Java面向对象之内部类的几类使用场景
    介绍Java内部类是一种特殊的类,它定义在另一个类的内部。内部类提供了许多有用的特性,包括访问外部类的私有成员、隐藏实现细节以及实现回调接口等。以下是Java内部类的一些常用场景及其举例说明:回调接口当某个类需要一个对象来执行其方法时,通常可以使用回调接口。这时,内部类可以......
  • 7-5. 场景淡入淡出效果
    DoTween实现淡入淡出定义淡入淡出事件切换场景的时候发布淡入淡出事件卸载场景的时候,蒙版变黑场景加载完之后,蒙版变透明创建FadeCanvas以及监听淡入淡出事件项目相关代码代码仓库:https://gitee.com/nbda1121440/2DAdventure.git标签:20240228_1531......
  • 7-4. 场景加载后的执行逻辑
    解决场景加载后人物坐标不正确的问题在SceneLoader.UnLoadPreviousScene中,场景卸载掉之后,需要将人物隐藏场景加载完之后,需要执行回调在回调中,需要设置当前加载的场景,设置人物的坐标,显示人物,并发布场景完成后的事件注意,afterSceneLoadedEvent是一个VoidEventSO切换场景......
  • L-BFGS-B(Limited-memory Broyden–Fletcher–Goldfarb–Shanno )算法理解 —— 内存
    本文主要讲下个人对数值优化算法中几种常见算法的理解。什么是优化算法?给出函数f(X),现在要求minf(X)时的X值,这就是最优化问题。1.共轭梯度法方程:A*x=b,A矩阵为对称正定矩阵,b为向量,目标为求解出向量x。个人认为共轭梯度法并不能被当做是一个真正的优化算法,因为共轭梯度......
  • 7-3. 场景管理和切换
    使用Addressable如下图所示安装Addressables打开Addressables创建AddressablesSettings创建完毕之后,就能在Assets目录下找到配置好的文件我们把默认的GroupName改成Scenes然后选择场景,勾选Addressable把场景变成Addressable之后,在BuildSettings里面......
  • 7-2. 场景互动的逻辑实现
    创建可互动接口实现宝箱代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassChest:MonoBehaviour,IInteractable{privateSpriteRendererspriteRenderer;publicSpriteopenSprite;publicSpriteclose......
  • Openlayer加载mapboxgl矢量图层
    注意Openlayer的版本Openlayer是支持直接加载矢量图层的,如下图层会没有样式渲染<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0&q......
  • SpringBoot 2x 系列之(七)web场景
    web场景1.SpringMVC自动配置概览SpringBootprovidesauto-configurationforSpringMVCthatworkswellwithmostapplications.(大多场景我们都无需自定义配置)Theauto-configurationaddsthefollowingfeaturesontopofSpring’sdefaults:InclusionofCont......