如果你是用脚本更改的Inspector(检查器)面板数据(属性),一般情况下,场景是检测不到更改的,等我们关闭了场景,一切还原,什么都没发生。
这个应该是Unity的正常设计,就像我们startup之后,场景的任何改变都不会保存。
那么如果有需要,如何保存呢?
方案一:手动存储
手动存储要让场景检测到有变化,即有*的状态,我们可以打开关闭场景中任何组件的active,用以触发存储。
还有就是使用代码:
EditorUtility.SetDirty(component);
方案二:代码存储(推荐)
#if UNITY_EDITOR
using UnityEditor.SceneManagement;
using UnityEngine.SceneManagement;
public static class SceneUtil
{
public static void Save()
{
var scene = SceneManager.GetActiveScene();
EditorSceneManager.SaveScene(scene);
}
}
#endif