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

  • 相关阅读:
    centOS 开机自启动自己的脚本
    python SMTP 发送邮件 阿里企业邮箱、163邮箱 及535错误
    memcach 命令行
    python requests上传文件 tornado 接收文件
    Python memecache
    python Redis
    Slave_SQL_Running: No mysql同步故障解决方法
    mysql 数据库的主从同步
    Centos7 安装mysql5.7.16
    centos python2.6 升级到 python2.7
  • 原文地址:https://www.cnblogs.com/123ing/p/3794013.html
Copyright © 2011-2022 走看看