为啥我在 Android 上运行之间会丢失可编写脚本对象中的数据,但在编辑器中却没有?

Posted

技术标签:

【中文标题】为啥我在 Android 上运行之间会丢失可编写脚本对象中的数据,但在编辑器中却没有?【英文标题】:Why do I lost data in scriptable objects between runs on Android but not in editor?为什么我在 Android 上运行之间会丢失可编写脚本对象中的数据,但在编辑器中却没有? 【发布时间】:2016-06-27 15:32:52 【问题描述】:

所以,我有一个可编写脚本的对象,我需要跟踪一个日期。因为可编写脚本的对象不能自己跟踪运行时之间的日期,所以我想出了以下方法:

public long EndTimeLong;
private DateTime endTime;
public DateTime EndTime

    get
    
        return endTime;
    
    set
    
        EndTimeLong = value.ToBinary();
        endTime = value;
    

因此,将 EndTime 设置为任何值,将其作为二进制存储在 EndTimeLong 中。

然后在我在运行时使用它之前,我调用了以下方法:

public void ReInit()

    EndTime = DateTime.FromBinary(EndTimeLong);
    ...

所以,在我完全使用脚本对象之前,应该恢复原始日期。

不过,这似乎在编辑器中可以正常工作,但在 android 中却不行。

我可以判断的是,在编辑器中,我运行了一个方法,将 endtime 设置为未来 60 秒。然后我停止并开始编辑器播放,它知道 endtime 仍然在未来并相应地采取行动。 (显示一些东西等) 然而,在 android 上,它认为时间不在未来。为什么两者之间的这种行为会有所不同?我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

我假设您在会话之间将 EndTimeLong 值写入文件,这就是您稍后加载它的方式。如果您提供有关如何在会话之间保存数据的更多信息,我们可能会提供更多帮助。

话虽如此,如果这是您在会话之间需要保存的全部内容,我会改用 Unity 的 PlayerPref 东西:https://docs.unity3d.com/ScriptReference/PlayerPrefs.html

【讨论】:

以上是关于为啥我在 Android 上运行之间会丢失可编写脚本对象中的数据,但在编辑器中却没有?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 XMPP 消息有时会在移动设备上丢失

为啥在分组 data.table 中的 lm 上使用更新会丢失其模型数据?

当我在 plotly 中使用 ggplotly 函数时,为啥文本注释会丢失?

Android知识点:LiveData为啥连续postValue两次,第一次的值会丢失?

为啥我在使用 POST 控制器时会丢失所有数据?

当我在 vue 组件上输入另一个输入时,为啥输入文件的值丢失?