unity自动保存项目
原文来自于: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自动保存项目的更多相关文章
- 【转载】Unity插件研究院之自动保存场景
原文: http://wiki.unity3d.com/index.php?title=AutoSave 最近发现Unity老有自动崩溃的BUG. 每次崩溃的时候由于项目没有保存所以Hierarch ...
- pycharm 取消自动保存
pycharm默认是自动保存的,习惯自己按 ctrl + s 的可以进行如下设置: 菜单File -> Settings... -> Appearance & Behavior - ...
- Unity自动打包工具
转载 https://blog.csdn.net/ynnmnm/article/details/36774715 最开始有写打包工具的想法,是因为看到<啪啪三国>王伟峰分享的一张图,他们有 ...
- django2自动发现项目中的url
根据路飞学城luffycity.com 的crm项目修改的 1 url入口:rbac/urls.py urlpatterns = [ ... # 批量操作权限 re_path(r'^multi/per ...
- Unity多媒体展示项目经验分享-ImageEffect+动态绑定
Unity多媒体展示项目经验分享-ImageEffect+动态绑定+网络通信 <ignore_js_op> “海尔科技展墙”是去年年初我们为上海家电博览会制作的一个多媒体展项,有限的工期以 ...
- 权限组件(12):自动发现项目中有别名的URL
自动发现项目中所有有别名的URL,效果如下: customer_list {'name': 'customer_list', 'url': '/customer/list/'} customer_ad ...
- WebStorm 编辑器 关闭自动保存功能及添加*星星标记
WebStorm 关闭自动保存功能添加*星星标记为什么要关闭自动保存? 在前端项目工作当中,往往会采用自动化环境(Gulp.webpack等)当文本发生变化的时候就会自动编译代码.在we ...
- SpringBoot 2.x (1):手动创建项目与自动创建项目
SpringBoot 2.x基于Spring Framework 5.x 环境需求如下: JDK1.8或以上 Maven3.2或以上 这里我使用的是Eclipse,IDEA这个工具很强大,但不习惯它 ...
- 【React】377- 实现 React 中的状态自动保存
点击上方"前端自习课"关注,学习起来~ 作者:陈俊宇 https://github.com/CJY0208 什么是状态保存? 假设有下述场景: 移动端中,用户访问了一个列表页,上拉 ...
随机推荐
- ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云
向视图中添加服务 现在,ASP.NET MVC 6 支持注入类到视图中,和VC类不同的是,对类是公开的.非嵌套或非抽象并没有限制.在这个例子中,我们创建了一个简单的类,用于统计代办事件.已完成事件和平 ...
- 无线客户端框架设计(4):自定义生命周期的设计(iOS篇)
首先要确定一点,我们的App,要基于XIB文件进行编程,而不是在每个相应的ViewController里面去手动创建页面的每个控件.这样做的好处是,将页面布局与业务逻辑彻底隔离.于是我们可以把xib的 ...
- ConcurrentHashMap--锁的分段技术
ConcurrentHashMap是Java 5中支持高并发.高吞吐量的线程安全HashMap实现. HashTable容器在竞争激烈的并发环境下表现出效率低下的原因,是因为所有访问HashTable ...
- mysql导入sql文件
从命令提示符下到MYSQL文件目录中的Bin文件夹下,执行命令 mysql -u root -p databasename < db.sql 其中root是你MYSQL的用户名,database ...
- .net对象序列化解析
一.二进制格式器(Binary Formatter) vs XML格式器(XML Formatter): 下面我先向大家介绍两种不同的格式器,分别用它们如何实现序列化机制和反序列化机制,请看下面的代码 ...
- paip. 内存占用少的php ide选择评测总结
paip. 内存占用少的php ide选择评测总结 php ide主要以内存占用为标准进行评测.. 其次以软件体积为标准.. 作者Attilax 艾龙, EMAIL:1466519819@qq.c ...
- DOM基本概念和操作
1.基本概念 DOM是文档对象模型(TEXT),对象是指文档中的每一个元素. 2.Window对象操作 打开方式: _blank 在新窗口还是自身窗口. Window.open 也有返回值,返回值为 ...
- Xiaomi 手机
- GitHub前50名的Objective-C动画相关库
GitHub的Objective-C的动画UI库其实是最多的一部分,GitHub有相当一部分的动画大牛,如Jonathan George,Nick Lockwood,Kevin,Roman Efimo ...
- android实现qq邮箱多个图标效果
前几天,蛋疼的技术主管非要实现类似装一个qq邮箱,然后能够使用qq邮箱日历的那么一个东西.相当于一个应用生成两个图标,可是不同的是点击不同的图标能够进入不同的应用,例如以下图的效果. 这效果百度了一天 ...