Example #1
0
        private bool ResetScene(string sceneName)
        {
            string        atlasPath         = LuaRuntime.GetGlobalString("ResPath_Atlases");
            string        defaultAtlas      = LuaRuntime.GetGlobalString("ResName_DefaultAtlas");
            List <string> additionalAtlases = LuaRuntime.GetGlobalStringArray("ResName_AdditionalAtlases");

            if (string.IsNullOrEmpty(atlasPath) || string.IsNullOrEmpty(defaultAtlas) || additionalAtlases.Count == 0)
            {
                return(false);
            }

            SceneEd.Instance.Selection.ClearSelection();
            ActionQueue.Instance.ClearActions();

            BootParams bp = new BootParams {
                ReourcePath          = atlasPath,
                DefaultReourceImage  = defaultAtlas,
                ReourceImages        = additionalAtlases,
                ScenePath            = sceneName,
                DesignTimeResolution = GetDefaultResolution()
            };

            if (!Bootstrap.Instance.Init(bp))
            {
                return(false);
            }

            m_glRenderBuffer.SetScene(Scene.Instance);
            m_glRenderBuffer.SetSceneEd(SceneEd.Instance);

            // 不管是 Load 还是 Reset 成功,均需要刷新窗体的标题栏
            UpdateFormTitle();

            SceneEd.Instance.Select(Scene.Instance.Root);
            SceneEdEventNotifier.Instance.Emit_RefreshScene(RefreshSceneOpt.Refresh_All);
            return(true);
        }