首页 > 代码库 > unity3d 自动保存

unity3d 自动保存

using UnityEngine;using UnityEditor;using System;public class AutoSave : EditorWindow {    private bool autoSaveScene = true;    private bool showMessage = true;    private bool isStarted = false;    private int intervalScene;     private DateTime lastSaveTimeScene = DateTime.Now;    private string projectPath = Application.dataPath;    private string scenePath;    [MenuItem ("Window/AutoSave")]    static void Init () {        AutoSave saveWindow = (AutoSave)EditorWindow.GetWindow (typeof (AutoSave));        saveWindow.Show();    }    void OnGUI () {        GUILayout.Label ("Info:", EditorStyles.boldLabel);        EditorGUILayout.LabelField ("Saving to:", ""+projectPath);        EditorGUILayout.LabelField ("Saving scene:", ""+scenePath);        GUILayout.Label ("Options:", EditorStyles.boldLabel);        autoSaveScene = EditorGUILayout.BeginToggleGroup ("Auto save", autoSaveScene);        intervalScene = EditorGUILayout.IntSlider ("Interval (minutes)", intervalScene, 1, 10);        if(isStarted) {            EditorGUILayout.LabelField ("Last save:", ""+lastSaveTimeScene);        }        EditorGUILayout.EndToggleGroup();        showMessage = EditorGUILayout.BeginToggleGroup ("Show Message", showMessage);        EditorGUILayout.EndToggleGroup ();    }    void Update(){        scenePath = EditorApplication.currentScene;        if(autoSaveScene) {            if(DateTime.Now.Minute >= (lastSaveTimeScene.Minute+intervalScene) || DateTime.Now.Minute == 59 && DateTime.Now.Second == 59){                saveScene();            }        } else {            isStarted = false;        }    }    void saveScene() {        EditorApplication.SaveScene(scenePath);        lastSaveTimeScene = DateTime.Now;        isStarted = true;        if(showMessage){            Debug.Log("AutoSave saved: "+scenePath+" on "+lastSaveTimeScene);        }        AutoSave repaintSaveWindow = (AutoSave)EditorWindow.GetWindow (typeof (AutoSave));        repaintSaveWindow.Repaint();    }}

 因为这个编辑窗口必须在激活状态,所以 你可以把它附属在某个窗口下面 比如Project视图。


<ignore_js_op>jjj.png 

 

原地址:http://www.narkii.com/club/thread-298445-1.html