Unity自动保存场景
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组装电脑配置单推荐报价格
上传时间: 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 |