您现在的位置是:首页 > 数码 > 

Unity自动保存场景

2025-07-27 02:27:49
Unity自动保存场景 1,根据InitializeOnLoad属性,放在类前,声明静态构造函数,即可在编辑器启动时调用该静态构造函数 2,UnityEditor.EditorApplication.update委托可以在编辑器下实现运行时的Update , EditorSceneManager.SaveSce

Unity自动保存场景

1,根据InitializeOnLoad属性,放在类前,声明静态构造函数,即可在编辑器启动时调用该静态构造函数
2,UnityEditor.EditorApplication.update委托可以在编辑器下实现运行时的Update
, EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());保存场景
实现:

using UnityEngine;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine.SceneManagement;
using System;[InitializeOnLoad]
public class XPAutoSave 
{public static Scene nowScene;public static DateTime lastSaveTime = ;static XPAutoSave(){lastSaveTime = ;EditorApplication.update = EditorUpdate;}~XPAutoSave(){EditorApplication.update -= EditorUpdate;}static void EditorUpdate(){if (AutoSaveWindow.autoSaveScene){double seconds = ( - lastSaveTime).TotalSeconds;if (seconds > AutoSaveWindow.intervalTime){saveScene();lastSaveTime = ;}}}static void saveScene(){if (nowScene.isDirty){nowScene = EditorSceneManager.GetActiveScene();EditorSceneManager.SaveScene(nowScene);if (AutoSaveWindow.showMessage){Debug.Log(自动保存场景:   nowScene.path      lastSaveTime);}}}
}
using UnityEditor;public class AutoSaveWindow : EditorWindow
{public static bool autoSaveScene = true;public static bool showMessage = true;public static int intervalTime = 0;[MenuItem(XP/自动保存面板)]static void Init(){EditorWindow saveWindow = EditorWindow.GetWindow(typeof(AutoSaveWindow)); = new Vector2(200, 200);saveWindow.Show();}void OnGUI(){GUILayout.Label(信息, EditorStyles.boldLabel);EditorGUILayout.LabelField(保存场景:,   path);GUILayout.Label(选择, EditorStyles.boldLabel);autoSaveScene = EditorGUILayout.BeginToggleGroup(自动保存, autoSaveScene);intervalTime = EditorGUILayout.IntField(时间间隔(秒), intervalTime);EditorGUILayout.EndToggleGroup();showMessage = EditorGUILayout.BeginToggleGroup(显示消息, showMessage);EditorGUILayout.EndToggleGroup();}
}

将放到Editor文件下即可,
通过菜单栏(XP/自动保存面板)可以设置自动保存的时间和是否自动保存

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/shuma/857040.html

相关标签:无
上传时间: 2024-02-10 05:51:16
留言与评论(共有 17 条评论)
本站网友 阿凯笛亚庄园
2分钟前 发表
200);saveWindow.Show();}void OnGUI(){GUILayout.Label(信息
本站网友 男用延时
19分钟前 发表
Unity自动保存场景 1,根据InitializeOnLoad属性,放在类前,声明静态构造函数,即可在编辑器启动时调用该静态构造函数 2,UnityEditor.EditorApplication.update委托可以在编辑器下实现运行时的Update , EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());保存场景 实现: using UnityEngine; using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine.SceneManagement; using System;[InitializeOnLoad] public class XPAutoSave {public static Scene nowScene;public static DateTime lastSaveTime = ;static XPAutoSave(){lastSaveTime = ;EditorApplication.update = EditorUpdate;}~XPAutoSave(){EditorApplication.update -= EditorUpdate;}static void EditorUpdate(){if (AutoSaveWindow.autoSaveScene){double seconds = ( - lastSaveTime).TotalSeconds;if (seconds > AutoSaveWindow.intervalTime){saveScene();lastSaveTime = ;}}}static void saveScene(){if (nowScene.isDirty){nowScene = EditorSceneManager.GetActiveScene();EditorSceneManager.SaveScene(nowScene);if (AutoSaveWindow.showMessage){Debug.Log(自动保存场景
本站网友 湖滨花园酒店
9分钟前 发表
EditorWindow {public static bool autoSaveScene = true;public static bool showMessage = true;public static int intervalTime = 0;[MenuItem(XP/自动保存面板)]static void Init(){EditorWindow saveWindow = EditorWindow.GetWindow(typeof(AutoSaveWindow)); = new Vector2(200
本站网友 显示屏尺寸
1分钟前 发表
  path);GUILayout.Label(选择
本站网友 区域经济发展
6分钟前 发表
  nowScene.path     lastSaveTime);}}} } using UnityEditor;public class AutoSaveWindow
本站网友 瑞旗家园
0秒前 发表

本站网友 天章
28分钟前 发表
intervalTime);EditorGUILayout.EndToggleGroup();showMessage = EditorGUILayout.BeginToggleGroup(显示消息
本站网友 婴儿摇篮
9分钟前 发表
  nowScene.path     lastSaveTime);}}} } using UnityEditor;public class AutoSaveWindow
本站网友 鹏达丽水湾
11分钟前 发表
EditorWindow {public static bool autoSaveScene = true;public static bool showMessage = true;public static int intervalTime = 0;[MenuItem(XP/自动保存面板)]static void Init(){EditorWindow saveWindow = EditorWindow.GetWindow(typeof(AutoSaveWindow)); = new Vector2(200
本站网友 苏州如家快捷酒店
19分钟前 发表
EditorStyles.boldLabel);autoSaveScene = EditorGUILayout.BeginToggleGroup(自动保存
本站网友 阿克苏美食
5分钟前 发表
EditorStyles.boldLabel);EditorGUILayout.LabelField(保存场景
本站网友 女生身高体重标准表
18分钟前 发表
Unity自动保存场景 1,根据InitializeOnLoad属性,放在类前,声明静态构造函数,即可在编辑器启动时调用该静态构造函数 2,UnityEditor.EditorApplication.update委托可以在编辑器下实现运行时的Update , EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());保存场景 实现: using UnityEngine; using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine.SceneManagement; using System;[InitializeOnLoad] public class XPAutoSave {public static Scene nowScene;public static DateTime lastSaveTime = ;static XPAutoSave(){lastSaveTime = ;EditorApplication.update = EditorUpdate;}~XPAutoSave(){EditorApplication.update -= EditorUpdate;}static void EditorUpdate(){if (AutoSaveWindow.autoSaveScene){double seconds = ( - lastSaveTime).TotalSeconds;if (seconds > AutoSaveWindow.intervalTime){saveScene();lastSaveTime = ;}}}static void saveScene(){if (nowScene.isDirty){nowScene = EditorSceneManager.GetActiveScene();EditorSceneManager.SaveScene(nowScene);if (AutoSaveWindow.showMessage){Debug.Log(自动保存场景
本站网友 宫颈糜烂手术后
27分钟前 发表
intervalTime);EditorGUILayout.EndToggleGroup();showMessage = EditorGUILayout.BeginToggleGroup(显示消息
本站网友 车前草的功效
3分钟前 发表

本站网友 化工厂
25分钟前 发表
showMessage);EditorGUILayout.EndToggleGroup();} } 将放到Editor文件下即可, 通过菜单栏(XP/自动保存面板)可以设置自动保存的时间和是否自动保存
本站网友 隔水炖
10分钟前 发表
EditorWindow {public static bool autoSaveScene = true;public static bool showMessage = true;public static int intervalTime = 0;[MenuItem(XP/自动保存面板)]static void Init(){EditorWindow saveWindow = EditorWindow.GetWindow(typeof(AutoSaveWindow)); = new Vector2(200