We save and load game locally read and write works Reead: C:/Users/FESA/AppData/LocalLow/Forever Entertainment SA/gamename\5ce3354f2453475485dd9fefec218f90\savedata\slot_0, file: slot_0
In developer epic panel we config cloud saves on Application Data LocalLow and provide subfolders: /Forever Entertainment SA/gamename/{EpicID}/savedata/ . So both paths, local and panel match. When we save and try on another computer to login we choose download save from cloud. But after launching game we don’t have cloud saves, but our local saves, like saves from cloud weren’t downloaded. Why? We test it like this I play game locally on my computer, make save, close game, sync with epic cloud. Second person logs on my account epic on another computer logs into my account, downloads saves from cloud, but after launching game, he has his local saves, instead of mine, cloud saves.
Okay we found that
Utf8String epicId;
PlayEveryWare.EpicOnlineServices.EOSManager.EOSSingleton.s_localUserId.ToString(out epicId);
m_rootPath = Path.Combine(EpicPublisherWrapper.rootDirectory, epicId.ToString());
Debug.Log($"Epic ID: {epicId.ToString()}, root path: {m_rootPath}");
returns epicid from previous login session not current. Like someone is logged on my account but in game game returns his account id.
Like my logs always return my epic id even when I am logged on another account.
public void StartLoginWithLoginOptions(Epic.OnlineServices.Auth.LoginOptions loginOptions, OnAuthLoginCallback onLoginCallback)
{
// start login things
var EOSAuthInterface = GetEOSPlatformInterface().GetAuthInterface();
Assert.IsNotNull(EOSAuthInterface, "EOSAuthInterface was null!");
// TODO: put this in a config file?
var displayOptions = new Epic.OnlineServices.UI.SetDisplayPreferenceOptions
{
NotificationLocation = Epic.OnlineServices.UI.NotificationLocation.TopRight
};
EOSManager.Instance.GetEOSPlatformInterface().GetUIInterface().SetDisplayPreference(ref displayOptions);
print("StartLoginWithLoginTypeAndToken");
#if UNITY_IOS && !UNITY_EDITOR
IOSLoginOptions modifiedLoginOptions = EOS_iOSLoginOptionsHelper.MakeIOSLoginOptionsFromDefualt(loginOptions);
EOSAuthInterface.Login(ref modifiedLoginOptions, null, (Epic.OnlineServices.Auth.OnLoginCallback)((ref Epic.OnlineServices.Auth.LoginCallbackInfo data) => {
#else
EOSAuthInterface.Login(ref loginOptions, null, (Epic.OnlineServices.Auth.OnLoginCallback)((ref Epic.OnlineServices.Auth.LoginCallbackInfo data) => {
#endif
print("LoginCallBackResult : " + data.ResultCode.ToString());
if (data.ResultCode == Result.Success)
{
loggedInAccountIDs.Add(data.LocalUserId);
try
{
UnityEngine.Debug.Log("adduser " + data.LocalUserId);
UnityEngine.Debug.Log("productid " + s_localProductUserId);
}catch(Exception e)
{
UnityEngine.Debug.Log("exc" + e);
}
//try
//{
// foreach(var acc in loggedInAccountIDs)
// {
// UnityEngine.Debug.Log("loggedinaccountids: " + acc);
// }
//}
//catch(Exception e)
//{
// UnityEngine.Debug.Log("ex" + e);
//}
SetLocalUserId(data.LocalUserId);
ConfigureAuthStatusCallback();
CallOnAuthLogin(data);
}
if (onLoginCallback != null)
{
onLoginCallback(data);
}
}));
}
Add user adds my id even that I am logged on different account with different id.