Unity自动场景保存脚本
新建一个名为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可以打开该面板,该脚本将自动识别项目路径并定时保存场景。
Unity自动场景保存脚本的更多相关文章
- Unity脚本自动添加注释脚本及排版格式
Unity脚本自动添加注释脚本及头部注释排版格式 公司开发项目,需要声明版权所有,,,,标注公司名,作者,时间,项目名称及描述等等. 自己总结实现的现成脚本及头部注释排版文本,添加到模版即可. 文件不 ...
- 【Unity】6.1 Unity中的C#脚本基础知识
分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 1.常用的C#数据类型 这里简单介绍用Unity开发游戏时,最常用的一些数据类型. (1)基本类型 int.float. ...
- Unity优化方向——优化Unity游戏中的脚本(译)
原文地址:https://unity3d.com/cn/learn/tutorials/topics/performance-optimization/optimizing-scripts-unity ...
- Unity3D热更新之LuaFramework篇[07]--怎么让unity对象绑定Lua脚本
前言 在上一篇文章 Unity3D热更新之LuaFramework篇[06]--Lua中是怎么实现脚本生命周期的 中,我分析了由LuaBehaviour来实现lua脚本生命周期的方法. 但在实际使用中 ...
- Entity Framework入门教程(10)---离线场景保存和删除实体/实体图集
离线场景保存和删除实体/实体图集 这一节的内容是在离线场景中保存实体和实体图集 在离线场景中,当我们保存一个离线的实体图集或一个单独的离线实体时,我们需要做两件事.首先,我们要把实体附加到新的上下文中 ...
- Unity 自动生成组件索引类工具
Unity 自动生成组件索引类工具 需求由来 我们在写UI类时 需要获取预设中的组件 joystick = transform.Find("joystick"); backgrou ...
- tomcat监控,自动重启shell脚本
tomcat监控,自动重启shell脚本如下,取名 monitor_tomcat.sh: #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作 # 获取tomcat进程ID(其中 ...
- Unity自动打包工具
转载 https://blog.csdn.net/ynnmnm/article/details/36774715 最开始有写打包工具的想法,是因为看到<啪啪三国>王伟峰分享的一张图,他们有 ...
- 如何自动运行loadrunner脚本
问题背景 在凌晨之后,自然流量比较低,无需人值守的情况自动运行loadruner脚本. 实现思路 windows定时任务+BAT脚本 BAT脚本: SET M_ROOT=C:\Program File ...
随机推荐
- vb.net 网络图片
https://msdn.microsoft.com/zh-cn/library/ms251715(VS.80).aspx
- tab切换-淘宝案例
案例: html: <body> <div class="wrap" id="wrap"> <div class="no ...
- HttpContext.GetOwinContext().Authentication 报错 解决办法
HttpContext.GetOwinContext().Authentication 会提示 不包含GetOwinContext 方法的报错信息 解决办法:引入system.web程序集,GetOw ...
- Oracle手工创建数据库
1,确定数据库全局变量名和实例名 DB_NAME = ORCL SID = ORCL 2,确定数据库管理员的认证方式: 管理员的认证方式包括操作系统认证和口令认证两种,本例采用操作系统认证 3,创建初 ...
- [CentOS] 指定命令别名:Alias & 软链接生成命令 ln -s
参考:CentOS里alias命令详解 每天一个linux命令(35):ln 命令 1. Alias命令 功能描述:我们在进行系统的管理工作一定会有一些我们经常固定使用,但又很长的命令.那我们可以给这 ...
- charles抓包工具
HTTP抓包 打开Charles程序 查看Mac电脑的IP地址,如192.168.1.7 打开iOS设置,进入当前wifi连接,设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.1 ...
- stm8s103串口
#include "uart.h" #define UART2#define uart_115200 1 void Init_UART2(void){#ifdef UART2 ...
- NodeJs使用asyncAwait两法
async/await使用同步的方式来书写异步代码,将异步调用的难度降低到接近于0,未来必将大放异彩.然而在当下,由于标准化的缓存步伐,async/await尚在ES7的草案中.为了尝先,特试用了下面 ...
- 用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解
关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...
- Windows对象
JS之Window对象 一.说明: 他是JS中最大的对象,它描述的是一个浏览器窗口,一般要引用他的属性和方法时,不需要用“Window.XXX”这种形式,而是直接使用“XXX”.一个框架页面也是一个窗 ...