示例#1
0
    public static string ToJson(this SceneManager sceneManager)
    {
        var stringStorage = new StringSerializerStorage();
        var stream        = new JsonStream();

        sceneManager.SaveState(stringStorage, stream);
        return(stringStorage.Result);
    }
 public static string SerializeToJSON(this ViewModel model)
 {
     ISerializerStream stream = new JsonStream();
     ISerializerStorage storage = new StringSerializerStorage();
     stream.DeepSerialize = true;
     model.Write(stream);
     storage.Save(stream);
     return storage.ToString();
 }
        public static string SerializeToJSON(this ViewModel model)
        {
            ISerializerStream  stream  = new JsonStream();
            ISerializerStorage storage = new StringSerializerStorage();

            stream.DeepSerialize = true;
            model.Write(stream);
            storage.Save(stream);
            return(storage.ToString());
        }
示例#4
0
    public static void FromJson(this SceneManager sceneManager, string stateData)
    {
        var stringStorage = new StringSerializerStorage()
        {
            Result = stateData
        };
        var stream = new JsonStream();

        sceneManager.LoadState(stringStorage, stream);
    }
示例#5
0
    public override void OnInspectorGUI()
    {
        GUIHelpers.IsInsepctor = true;
        DrawTitleBar("Scene Manager");

        base.OnInspectorGUI();
        if (EditorApplication.isPlaying || EditorApplication.isPlayingOrWillChangePlaymode)
        {
            //if (GUI.Button(GUIHelpers.GetRect(ElementDesignerStyles.ButtonStyle), "Serialize To String", ElementDesignerStyles.ButtonStyle))
            //{
            //    var sm = (target as SceneManager);

            //    sm.SaveState(new TextAssetStorage() { AssetPath = "Assets/TestData.txt" }, new JsonStream() { UseReferences = true });

            //}
            //if (GUI.Button(GUIHelpers.GetRect(ElementDesignerStyles.ButtonStyle), "Load From String", ElementDesignerStyles.ButtonStyle))
            //{
            //    var sm = (target as SceneManager);
            //    sm.LoadState(new TextAssetStorage() { AssetPath = "Assets/TestData.txt" }, new JsonStream() { UseReferences = true });

            //}
            if (GUIHelpers.DoToolbarEx("Persistable Views"))
            {
                foreach (var viewBase in GameManager.ActiveSceneManager.PersistantViews)
                {
                    if (viewBase == null)
                    {
                        continue;
                    }
                    if (GUIHelpers.DoTriggerButton(new UFStyle(viewBase.Identifier + ": " + viewBase.name,
                                                               ElementDesignerStyles.EventButtonStyleSmall, null, null, null, false,
                                                               TextAnchor.MiddleCenter)
                    {
                    }))
                    {
                        //var fileStorage = new TextAssetStorage();
                        var stringStorage = new StringSerializerStorage();
                        var stream        = new JsonStream();
                        viewBase.Write(stream);
                        stringStorage.Save(stream);
                        Debug.Log(stringStorage);
                    }
                }
            }
            if (GUIHelpers.DoToolbarEx("Persistable View-Models"))
            {
                foreach (var viewBase in GameManager.ActiveSceneManager.PersistantViewModels)
                {
                    if (viewBase == null)
                    {
                        continue;
                    }
                    if (GUIHelpers.DoTriggerButton(new UFStyle(viewBase.Identifier + ": " + viewBase.GetType().Name,
                                                               ElementDesignerStyles.EventButtonStyleSmall, null, null, null, false,
                                                               TextAnchor.MiddleCenter)
                    {
                    }))
                    {
                        //var fileStorage = new TextAssetStorage();
                        var stringStorage = new StringSerializerStorage();
                        var stream        = new JsonStream();
                        viewBase.Write(stream);
                        stringStorage.Save(stream);
                        Debug.Log(stringStorage);
                    }
                }
            }
        }

        GUIHelpers.IsInsepctor = false;
    }
    public override void OnInspectorGUI()
    {
        GUIHelpers.IsInsepctor = true;
        DrawTitleBar("Scene Manager");

        base.OnInspectorGUI();
        if (EditorApplication.isPlaying || EditorApplication.isPlayingOrWillChangePlaymode)
        {

            //if (GUI.Button(GUIHelpers.GetRect(ElementDesignerStyles.ButtonStyle), "Serialize To String", ElementDesignerStyles.ButtonStyle))
            //{
            //    var sm = (target as SceneManager);

            //    sm.SaveState(new TextAssetStorage() { AssetPath = "Assets/TestData.txt" }, new JsonStream() { UseReferences = true });

            //}
            //if (GUI.Button(GUIHelpers.GetRect(ElementDesignerStyles.ButtonStyle), "Load From String", ElementDesignerStyles.ButtonStyle))
            //{
            //    var sm = (target as SceneManager);
            //    sm.LoadState(new TextAssetStorage() { AssetPath = "Assets/TestData.txt" }, new JsonStream() { UseReferences = true });

            //}
            if (GUIHelpers.DoToolbarEx("Persistable Views"))
            {
                foreach (var viewBase in GameManager.ActiveSceneManager.PersistantViews)
                {
                    if (viewBase == null) continue;
                    if (GUIHelpers.DoTriggerButton(new UFStyle(viewBase.Identifier + ": " + viewBase.name,
                        ElementDesignerStyles.EventButtonStyleSmall, null, null, null, false,
                        TextAnchor.MiddleCenter) { }))
                    {
                        //var fileStorage = new TextAssetStorage();
                        var stringStorage = new StringSerializerStorage();
                        var stream = new JsonStream();
                        viewBase.Write(stream);
                        stringStorage.Save(stream);
                        Debug.Log(stringStorage);
                    }
                }

            }
            if (GUIHelpers.DoToolbarEx("Persistable View-Models"))
            {
                foreach (var viewBase in GameManager.ActiveSceneManager.PersistantViewModels)
                {
                    if (viewBase == null) continue;
                    if (GUIHelpers.DoTriggerButton(new UFStyle(viewBase.Identifier + ": " + viewBase.GetType().Name,
                        ElementDesignerStyles.EventButtonStyleSmall, null, null, null, false,
                        TextAnchor.MiddleCenter) { }))
                    {
                        //var fileStorage = new TextAssetStorage();
                        var stringStorage = new StringSerializerStorage();
                        var stream = new JsonStream();
                        viewBase.Write(stream);
                        stringStorage.Save(stream);
                        Debug.Log(stringStorage);
                    }
                }
            }
        }

        GUIHelpers.IsInsepctor = false;
    }