新建一个名为AutoSave的编辑器脚本,并放于Assets/Editor下。

 using System;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.SceneManagement; public class AutoSave : EditorWindow
{
private bool _autoSaveScene;
private bool _showMessage;
private bool _isStarted;
private int _intervalScene;
private DateTime _lastSaveTimeScene = DateTime.Now; private readonly string _projectPath = Application.dataPath;
private string _scenePath; [MenuItem("Window/AutoSave")]
private static void Init()
{
AutoSave saveWindow = (AutoSave) GetWindow(typeof (AutoSave));
saveWindow.Show();
} private 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, , );
if (_isStarted)
{
EditorGUILayout.LabelField("Last save:", "" + _lastSaveTimeScene);
}
EditorGUILayout.EndToggleGroup();
_showMessage = EditorGUILayout.BeginToggleGroup("Show Message", _showMessage);
EditorGUILayout.EndToggleGroup();
} private void Update()
{
_scenePath = SceneManager.GetActiveScene().path;
if (_autoSaveScene)
{
if (DateTime.Now.Minute >= (_lastSaveTimeScene.Minute + _intervalScene) ||
DateTime.Now.Minute == && DateTime.Now.Second == )
{
SaveScene();
}
}
else
{
_isStarted = false;
} } private void SaveScene()
{
EditorSceneManager.SaveScene(SceneManager.GetActiveScene());
_lastSaveTimeScene = DateTime.Now;
_isStarted = true;
if (_showMessage)
{
Debug.Log("AutoSave saved: " + _scenePath + " on " + _lastSaveTimeScene);
}
AutoSave repaintSaveWindow = (AutoSave) GetWindow(typeof (AutoSave));
repaintSaveWindow.Repaint();
}
}

在Window/AutoSave可以打开该面板,该脚本将自动识别项目路径并定时保存场景。

最新文章

  1. [WinForm]WinForm跨线程UI操作常用控件类大全
  2. Range Sum Query - Mutable
  3. SQL SERVER 2012链接到SQL SERVER 2000的问题解决案例
  4. 详解依赖注入(DI)和Ioc容器
  5. mysql 批处理文件--- 创建 用户 以及 导入数据
  6. SRM 442(1-250pt, 1-500pt)
  7. UINavigationBar-使用总结
  8. cdoj 791 Frozen Rose-Heads
  9. Android 实现简单天气应用
  10. 快速构建Windows 8风格应用33-构建锁屏提醒
  11. 【做题】ZJOI2017仙人掌——组合计数
  12. html2canvas关于图片不能正常截取
  13. A1133. Splitting A Linked List
  14. 初学C#windows程序
  15. Windows10设置
  16. 【刷题】LOJ 6012 「网络流 24 题」分配问题
  17. 20145332卢鑫 MSF基础应用
  18. 主席树模板(poj 2104&&poj2761)
  19. Codeforces805 A. Fake NP 2017-05-05 08:30 327人阅读 评论(0) 收藏
  20. 数据库之MySQL的介绍与使用20180703

热门文章

  1. java 简单数组元素的增删改查
  2. 关于jQuery事件绑定
  3. NetworkComms V3 模拟登陆
  4. javascript 中继承实现方式归纳
  5. Centos 6.5 安装 ionCube PHP Loader
  6. RP4412开发板烧写Ubuntu12.04失败原因分析解决
  7. Java日志规范
  8. JSP内置对象---用户登录页面(get和post)
  9. C# winform 模拟键盘鼠标操作
  10. 第五篇.Bootstrap 排版