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>

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

unity3d 自动保存

时间: 2024-08-21 13:58:17

unity3d 自动保存的相关文章

unity3d 自动文件更新系统

unity3d 自动文件更新系统 时间 2014-08-27 17:47:10  CSDN博客原文  http://blog.csdn.net/x_studying/article/details/38873727 游戏内容变更之后,一般而言不会想让玩家下载整个游戏包重新安装,因为这样会流失大量玩家.所有游戏更新是必须的.更新的内容包括 数据.资源.代码. 基本原理: 1.将需要更新的文件打包成AssetBundle文件,并计算各个文件的crc值. 下面代码将选择的文件分别导出为AssetBun

【转载】Unity插件研究院之自动保存场景

原文: http://wiki.unity3d.com/index.php?title=AutoSave  最近发现Unity老有自动崩溃的BUG. 每次崩溃的时候由于项目没有保存所以Hierarchy视图游戏对象与游戏资源的关系就会丢失.所以想到自动保存场景. 本来想自己写一个这样的脚本,但是发现维基百科上已经有了... using UnityEngine; using UnityEditor; using System; public class AutoSave : EditorWindo

用汇编语言给XP记事本添加“自动保存”功能 good

[文章标题]: 用汇编语言给XP记事本添加“自动保存”功能 [文章作者]: newjueqi [作者邮箱]:[email protected] [作者QQ]:190678908 [使用工具]: OD, LordPE,eXeScope[操作平台]: XP-SP2[作者声明]: 本人平时一般的文字处理都是用记事本(用Word好像大材小用了),电脑自从拿去大修后有时候会莫名其妙的重启,弄得经常重写(本人常常忘记保存^-^),于是想给记事本增加类似于Word的自动保存功能,以图个方便.失误之处敬请诸位大

Office——EXCEL 打开自动修改 关闭自动保存

==================================声明================================== 本文版权归作者所有 未经作者授权 请勿转载 保留法律追究的权利 本文原创,已获得转载授权的,必须在正文中显要地注明作者和出处,并保证文章(包括本声明)的完整性. 被授权人不可再次授权第三方. 未经作者授权请勿修改(包括本声明),保留法律追究的权利. 未经作者授权请勿用于学术性引用. 未经作者授权请勿用于商业出版.商业印刷.商业引用以及其他商业用途.    

arcgis的mxd数据源检查,和自动保存为相对路径

arcgis的mxd数据源(含矢量和影像)检查,和,检查是否为相对路径,自动保存为相对路径 ArcGIS10.0和ArcGIS10.2.2测试通过 运行日志类似: 文件:F:\RS和GIS一体化\data\3.坐标系统\数据接边.mxd的图层:等高线修改,找不到矢量数据源文件:F:\RS和GIS一体化\data\3.坐标系统\数据接边.mxd的图层:等高线,找不到矢量数据源文件:F:\RS和GIS一体化\data\3.坐标系统\错误1.mxd的图层:ZD,找不到矢量数据源文件:F:\RS和GIS

如何关闭android studio开发环境自动保存

使用DW习惯了现在转到学习开发android,请问怎样关闭android studio的自动保存功能,然后按ctrl+s进行保存,因为有时候代码不想让其保存,他也自动保存了. File -> Setting -> General -> Save files on frame deactivation 和 Save files automatically if application is idle for .. sec 去掉

教你如何在ZBrush中自动保存

在使用 ZBrush执行任何会话期间,您都可以设置将文件自动保存,并可以修改保存时间间隔,文件保存位置等设置.发生系统错误后要重新启动ZBrush®时,可以从临时文件夹或指定的文件夹中恢复备份文件.如果您选择不恢复备份文件,退出应用程序后文件会自动擦除. 首先在“Preferences”菜单的最后倒数第四个,找到“QuickSave”选项,并单击展开它. “QuickSave”选项中各参数按钮的功能如下: Maximum Duration(最长时间):每隔多长时间保存一次,单位是分钟. Rest

Dynamic CRM 2013学习笔记(三十六)全部禁用、部分禁用&rdquo;自动保存&rdquo; 功能

我们都知道CRM2013新增了一个自动保存的功能:每30秒或跳转到新的记录前会自动保存.但有时考虑到性能或其它原因,我们有时要禁用此功能.下面介绍如何在所有form里禁用或在部分form里禁用此功能.   一.全部禁用 全部禁用很简单,依次打开Seeting –> administrator –> system settings, 然后如下图把Enable auto save on all forms 设为No即可   二.部分禁用 上面的方法是针对所有的form.如果我们只想在指定的form

webstorm取消自动保存并标识修改的文件为星星标记

a.取消自动保存是去掉一下两个勾选. b.标记星星要勾选下面的选项. c.最终效果.