所以,我创建了一个保存系统。我有保存/加载玩家和保存/加载世界数据。除了“SaveWorld()”函数外,它们都可以通过按钮访问。我不确定发生了什么。“SaveWorld”和“LoadWorld”都连接到同一个空游戏对象。保存/加载玩家连接到玩家游戏对象。
下面是SaveWorldData()脚本
using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEngine;
using System;
public class SaveWorldData : MonoBehaviour
{
public void SaveWorld(WorldData worldData)
{
SaveSystem.SaveWorld(worldData);
Debug.Log("worldData Saved");
}
}
以下是LoadWorldData脚本的功能
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using static Calendar;
public class LoadWorldData : MonoBehaviour
{
public void LoadWorld()
{
WorldData worldData = SaveSystem.LoadWorld();
// Expedition Start and End time
DateTime expeditionEndTime = worldData.ExpeditionEnd;
DateTime expeditionStartTime = worldData.ExpeditionStart;
}
}
保存按钮UI如下:
WorldManager游戏对象为空:
我已经删除并附加到另一个游戏对象的脚本,但没有任何变化。
1条答案
按热度按时间unhi4e5o1#
注意
SaveWorld()
函数有一个参数WorldData worldData
。按钮不能给予参数,因此它不能调用方法SaveWorld()
。您需要有一个没有参数的公共方法。如何修复:除非你想改变你的
SaveWorld()
方法没有参数,我会建议添加另一个方法到SaveWorldData
,它不接受任何参数,获取WorldData
(从你得到它的地方)和调用SaveWorld()
。