原文来自于:http://wiki.unity3d.com/index.php?title=AutoSave#C.23_-_AutoSave.cs      (奋斗的菜鸟_1029633680)

很多时候,在编写项目时,遇见unity 的Buge导致强制退出,这时根本来不及保存hierarchy视图中的东西,这是一件很糟糕的事情,所以在今天看资料时,有幸的看到了这篇自动保存项目场景的源码。很是不错。

源码如下:

 1 using UnityEngine;
2 using UnityEditor;
3 using System;
4
5 public class AutoSave : EditorWindow
6 {
7
8 private bool autoSaveScene = true;
9 private bool showMessage = true;
10 private bool isStarted = false;
11 private int intervalScene;
12 private DateTime lastSaveTimeScene = DateTime.Now;
13
14 private string projectPath = Application.dataPath;
15 private string scenePath;
16
17 [MenuItem("Window/AutoSave")]
18 static void Init()
19 {
20 AutoSave saveWindow = (AutoSave)EditorWindow.GetWindow(typeof(AutoSave));
21 saveWindow.Show();
22 }
23
24 void OnGUI()
25 {
26 GUILayout.Label("Info:", EditorStyles.boldLabel);
27 EditorGUILayout.LabelField("Saving to:", "" + projectPath);
28 EditorGUILayout.LabelField("Saving scene:", "" + scenePath);
29 GUILayout.Label("Options:", EditorStyles.boldLabel);
30 autoSaveScene = EditorGUILayout.BeginToggleGroup("Auto save", autoSaveScene);
31 intervalScene = EditorGUILayout.IntSlider("Interval (minutes)", intervalScene, 1, 10);
32 if (isStarted)
33 {
34 EditorGUILayout.LabelField("Last save:", "" + lastSaveTimeScene);
35 }
36 EditorGUILayout.EndToggleGroup();
37 showMessage = EditorGUILayout.BeginToggleGroup("Show Message", showMessage);
38 EditorGUILayout.EndToggleGroup();
39 }
40
41
42 void Update()
43 {
44 scenePath = EditorApplication.currentScene;
45 if (autoSaveScene)
46 {
47 if (DateTime.Now.Minute >= (lastSaveTimeScene.Minute + intervalScene) || DateTime.Now.Minute == 59 && DateTime.Now.Second == 59)
48 {
49 saveScene();
50 }
51 }
52 else
53 {
54 isStarted = false;
55 }
56
57 }
58
59 void saveScene()
60 {
61 EditorApplication.SaveScene(scenePath);
62 lastSaveTimeScene = DateTime.Now;
63 isStarted = true;
64 if (showMessage)
65 {
66 Debug.Log("AutoSave saved: " + scenePath + " on " + lastSaveTimeScene);
67 }
68 AutoSave repaintSaveWindow = (AutoSave)EditorWindow.GetWindow(typeof(AutoSave));
69 repaintSaveWindow.Repaint();
70 }
71 }

值得注意的是:创建好这个脚本后,放在Assets/Editor文件夹中,然后编辑的窗口再Window目录下。

在激活状态下,才可有效。希望对大家有所帮助。

unity自动保存项目的更多相关文章

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

    原文: http://wiki.unity3d.com/index.php?title=AutoSave  最近发现Unity老有自动崩溃的BUG. 每次崩溃的时候由于项目没有保存所以Hierarch ...

  2. pycharm 取消自动保存

    pycharm默认是自动保存的,习惯自己按 ctrl + s 的可以进行如下设置: 菜单File -> Settings... -> Appearance & Behavior - ...

  3. Unity自动打包工具

    转载 https://blog.csdn.net/ynnmnm/article/details/36774715 最开始有写打包工具的想法,是因为看到<啪啪三国>王伟峰分享的一张图,他们有 ...

  4. django2自动发现项目中的url

    根据路飞学城luffycity.com 的crm项目修改的 1 url入口:rbac/urls.py urlpatterns = [ ... # 批量操作权限 re_path(r'^multi/per ...

  5. Unity多媒体展示项目经验分享-ImageEffect+动态绑定

    Unity多媒体展示项目经验分享-ImageEffect+动态绑定+网络通信 <ignore_js_op> “海尔科技展墙”是去年年初我们为上海家电博览会制作的一个多媒体展项,有限的工期以 ...

  6. 权限组件(12):自动发现项目中有别名的URL

    自动发现项目中所有有别名的URL,效果如下: customer_list {'name': 'customer_list', 'url': '/customer/list/'} customer_ad ...

  7. WebStorm 编辑器 关闭自动保存功能及添加*星星标记

    WebStorm 关闭自动保存功能添加*星星标记为什么要关闭自动保存?      ​ 在前端项目工作当中,往往会采用自动化环境(Gulp.webpack等)当文本发生变化的时候就会自动编译代码.在we ...

  8. SpringBoot 2.x (1):手动创建项目与自动创建项目

    SpringBoot 2.x基于Spring Framework 5.x 环境需求如下: JDK1.8或以上 Maven3.2或以上 这里我使用的是Eclipse,IDEA这个工具很强大,但不习惯它 ...

  9. 【React】377- 实现 React 中的状态自动保存

    点击上方"前端自习课"关注,学习起来~ 作者:陈俊宇 https://github.com/CJY0208 什么是状态保存? 假设有下述场景: 移动端中,用户访问了一个列表页,上拉 ...

随机推荐

  1. Scala:条件表达式的好处

    条件表达式的好处之一是:让代码更简洁,例如在一个需要根据不同条件收集不同值的场景中,多数语言提供的代码如下: ; ) { tmp = xxx; } ) { tmp = yyy; } else { tm ...

  2. 如何给input[file]定义cursor

    来源:http://stackoverflow.com/questions/1537223/change-cursor-type-on-input-type-file Simple question. ...

  3. Atitit 三论”(系统论、控制论、信息论

    Atitit 三论"(系统论.控制论.信息论 1. 系统论的创始人是美籍奥地利生物学家贝塔朗菲1 2. 信息论是由美国数学家香农创立的,2 3. 什么是控制论? 2 1. 系统论的创始人是美 ...

  4. paip.spring 获取bean getBean 没有beanid的情况下

    paip.spring 获取bean  getBean 没有beanid的情况下 spring能自动扫描带有注解的bean文件.. 作者Attilax  艾龙,  EMAIL:1466519819@q ...

  5. paip.重装系统后firefox火狐收藏夹的恢复

    paip.重装系统后firefox火狐收藏夹的恢复 1.使用procmon跟踪ff保存收藏时候的读写文件.. D:\Users\attilax\AppData\Roaming\Mozilla\Fire ...

  6. Leetcode 290 Word Pattern STL

    Leetcode 205 Isomorphic Strings的进阶版 这次是词组字符串和匹配字符串相比较是否一致 请使用map来完成模式统计 class Solution { public: boo ...

  7. 大家一起写mvc(二)

    上一篇已经看了,我想大家都明白了mvc的原理,今天我们来说一下要写自己mvc框架必须要会的技术. mvc的目录是这样的 src目录是我们核心的mvc代码.这个代码明天讲,今天主要讲的代码都在test目 ...

  8. 小白学数据分析----->ARPDAU的价值

    最近盛大刚刚发布了财报,有人给我打电话问什么是ARPDAU?ARPDAU能够起到什么作用?本文就这个问题给大家解析一下ARPDAU.在讲ARPDAU之前,有两个概念大家应该很清楚,一个是ARPU,另一 ...

  9. 扩展ViewFlow避免和ViewPager滑动冲突,同时支持无限循环,并完美和CircleFlowIndicator结合

    首先,为了避免滑动冲突,我们要继承ViewFlow,重写onInterceptTouchEvent public class MyViewFlow extends ViewFlow { private ...

  10. Java 多线程(1)-Thread和Runnable

    一提到Java多线程,首先想到的是Thread继承和Runnable的接口实现 Thread继承 public class MyThread extends Thread { public void ...