Unity编辑器中SessionState与EditorPrefs的区别
·
近期遇到一个需求,在插件包首次导入后显示一个欢迎界面,虽然SessionState
和EditorPrefs
都能用于在Unity编辑器中保存数据,但它们适用于不同的需求。
SessionState
SessionState
主要用于在编辑器会话期间保持状态信息。适合用来保存那些只在当前编辑器会话期间有效的数据,关闭当前会话后,所有保存的数据都会丢失。
EditorPrefs
EditorPrefs
提供了更持久的数据存储。这些数据即使在Unity关闭后仍然存在。
因此,如果需要在每次编辑器启动时显示一个窗口可以使用SessionState:
[InitializeOnLoadMethod]
private static void OnInitialize()
{
EditorApplication.delayCall += () =>
{
if (!SessionState.GetBool("PluliterWelcomeShown", false))
{
ShowWindow();
SessionState.SetBool("PluliterWelcomeShown", true);
}
};
}
如果跟我的需求一样,在首次导入插件包后显示一次:
[InitializeOnLoadMethod]
private static void OnInitialize()
{
EditorApplication.delayCall += () =>
{
if (!EditorPrefs.GetBool("PluliterWelcomeShown", false))
{
ShowWindow();
EditorPrefs.SetBool("PluliterWelcomeShown", true);
}
};
}
参考:
更多推荐
所有评论(0)