纳金网
标题:
Unity3D自动保存场景
[打印本页]
作者:
大大虾
时间:
2013-5-24 21:45
标题:
Unity3D自动保存场景
由于Unity有自动崩溃的BUG每次崩溃的时候由于项目没有保存所以Hierarchy视图游戏对象与游戏资源的关系就会丢失,所以想到自动保存场景。(脚本来自维基百科)
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视图。
2013-5-24 21:44 上传
下载附件
(35.46 KB)
作者:
艾西格亚
时间:
2013-5-24 21:49
感谢分享这个脚本,很实用的功能!
作者:
大大虾
时间:
2013-5-24 22:02
艾西格亚 发表于 2013-5-24 21:49
感谢分享这个脚本,很实用的功能!
哈哈~~~天天看着老大你分享那么多好东西~我们也稍微做点力所能及贡献啊~~~
作者:
烟雨
时间:
2013-5-24 22:42
wow,这个不错的功能啊,解决了一些保存的问题,感谢楼主!
作者:
u3dnew
时间:
2013-5-27 11:14
it is good
作者:
spencergong
时间:
2013-5-27 15:32
it is good too
作者:
王者再临
时间:
2013-5-27 18:58
不错的脚本,学习了!
作者:
sadrthhvq
时间:
2013-5-27 21:03
感谢分享
作者:
may
时间:
2013-5-31 04:54
不错的功能,希望unity可以内建这样的东西
作者:
薄秋
时间:
2014-11-18 17:05
求教,我把脚本放在自建的Editor中没出来对应的窗口
作者:
oelongeo
时间:
2014-11-18 21:31
顶一个! 非常实用的脚本
欢迎光临 纳金网 (http://go.narkii.com/club/)
Powered by Discuz! X2.5