前面我们在生命值中添加了存档系统的接口和捕获方法,通过存档系统可以报数据存储下来,将玩家的数据ID设为唯一,在Portal门户切换触发后,调用存档方法,异步加载场景之后在加载数据,这样在切换场景后,玩家的生命值也会同步一直更新,无论我们怎么切换场景后,两个场景的角色生命值都会同步,还需要在更新玩家时,先关闭寻路,等待更新完成后在开启寻路,这样防止坐标位置错乱。 设置存档数据ID 门户加载部分,这里有个BUG,教程中使用赋值然后查找SavingWrapper组件,SavingWrapper wrapper = FindObjectOfType<SavingWrapper>() 但是在运行游戏后,切换场景时,会导致获取SavingWrapper为空的bug。 具体原因是因为切换场景时,虽然通过赋值寻找了SavingWrapper组件,然后Save(),但是在异步加载完成之后,直接用赋值的wrapper调用Load(), 代码执行到这里时由于场景已经切换,这个时候就会出现空引用,所以这里其实还需要FindObjectOfType一次,这样就不会用问题。 完整代码如下: Portal
|