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 ...
随机推荐
- git常用功能
- C语言程序设计入门学习五步曲(转发)
笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手.发生这种现象的原因有三个: 一.所谓的看懂听明白,只是很肤浅的 ...
- Spring Boot中的注解
文章来源:http://www.tuicool.com/articles/bQnMra 在Spring Boot中几乎可以完全弃用xml配置文件,本文的主题是分析常用的注解. Spring最开始是为了 ...
- JAVA数据转换常用方法
时间格式化与运算 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar=sdf. ...
- 如何获取域名的ip地址
- java集合中的传值和传引用
在学习java集合过程中发现了传值和传引用的区别: 我们来看下面两句话 ●java集合就像一种容器,我们可以把多个对象(实际上是对象的引用),丢进该容器.(来自疯狂java讲义) ●当使用Iterat ...
- C#枚举中的位运算权限分配浅谈
常用的位运算主要有与(&), 或(|)和非(~), 比如: 1 & 0 = 0, 1 | 0 = 1, ~1 = 0 在设计权限时, 我们可以把权限管理操作转换为C#位运算来处理. 第 ...
- python学习——如何判断输入是数字
笨办法学python第35节 该节主要是讲分支与函数,主要遇到的问题是python中如何判断输入是数字. 首先原代码如下: from sys import exit def gold_room(): ...
- 面试复习(C++)之直接选择排序
#include <iostream> using namespace std; void Selection(int *a,int len) { ;i<len;i++) { int ...
- 最简单的RASPBERRY PI wifi配置
Setting up Wifi with the Command Line SIMON MONK This tutorial works best if your router is broad ...