Unity自动场景保存脚本
2024-08-26 13:13:07
新建一个名为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可以打开该面板,该脚本将自动识别项目路径并定时保存场景。
最新文章
- [WinForm]WinForm跨线程UI操作常用控件类大全
- Range Sum Query - Mutable
- SQL SERVER 2012链接到SQL SERVER 2000的问题解决案例
- 详解依赖注入(DI)和Ioc容器
- mysql 批处理文件--- 创建 用户 以及 导入数据
- SRM 442(1-250pt, 1-500pt)
- UINavigationBar-使用总结
- cdoj 791 Frozen Rose-Heads
- Android 实现简单天气应用
- 快速构建Windows 8风格应用33-构建锁屏提醒
- 【做题】ZJOI2017仙人掌——组合计数
- html2canvas关于图片不能正常截取
- A1133. Splitting A Linked List
- 初学C#windows程序
- Windows10设置
- 【刷题】LOJ 6012 「网络流 24 题」分配问题
- 20145332卢鑫 MSF基础应用
- 主席树模板(poj 2104&;&;poj2761)
- Codeforces805 A. Fake NP 2017-05-05 08:30 327人阅读 评论(0) 收藏
- 数据库之MySQL的介绍与使用20180703