zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    mac 安装 pycharm
    mac clion c/c++环境配置
    CLion201914 下载安装
    mac 安装cmake
    JetBrains CLion 2019 for Mac(智能C和C++编辑器)中英文如何切换完整教程
    SnippetsLab Mac 代码收藏管理工具
    goland 安装破解
    linux管道pipe详解
    HTML meta pragma no-cache 页面缓存
    Connection: close
  • 原文地址:https://www.cnblogs.com/123ing/p/3794013.html
Copyright © 2011-2022 走看看