新建一个名为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自动场景保存脚本的更多相关文章

  1. Unity脚本自动添加注释脚本及排版格式

    Unity脚本自动添加注释脚本及头部注释排版格式 公司开发项目,需要声明版权所有,,,,标注公司名,作者,时间,项目名称及描述等等. 自己总结实现的现成脚本及头部注释排版文本,添加到模版即可. 文件不 ...

  2. 【Unity】6.1 Unity中的C#脚本基础知识

    分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 1.常用的C#数据类型 这里简单介绍用Unity开发游戏时,最常用的一些数据类型. (1)基本类型 int.float. ...

  3. Unity优化方向——优化Unity游戏中的脚本(译)

    原文地址:https://unity3d.com/cn/learn/tutorials/topics/performance-optimization/optimizing-scripts-unity ...

  4. Unity3D热更新之LuaFramework篇[07]--怎么让unity对象绑定Lua脚本

    前言 在上一篇文章 Unity3D热更新之LuaFramework篇[06]--Lua中是怎么实现脚本生命周期的 中,我分析了由LuaBehaviour来实现lua脚本生命周期的方法. 但在实际使用中 ...

  5. Entity Framework入门教程(10)---离线场景保存和删除实体/实体图集

    离线场景保存和删除实体/实体图集 这一节的内容是在离线场景中保存实体和实体图集 在离线场景中,当我们保存一个离线的实体图集或一个单独的离线实体时,我们需要做两件事.首先,我们要把实体附加到新的上下文中 ...

  6. Unity 自动生成组件索引类工具

    Unity 自动生成组件索引类工具 需求由来 我们在写UI类时 需要获取预设中的组件 joystick = transform.Find("joystick"); backgrou ...

  7. tomcat监控,自动重启shell脚本

    tomcat监控,自动重启shell脚本如下,取名 monitor_tomcat.sh: #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作 # 获取tomcat进程ID(其中 ...

  8. Unity自动打包工具

    转载 https://blog.csdn.net/ynnmnm/article/details/36774715 最开始有写打包工具的想法,是因为看到<啪啪三国>王伟峰分享的一张图,他们有 ...

  9. 如何自动运行loadrunner脚本

    问题背景 在凌晨之后,自然流量比较低,无需人值守的情况自动运行loadruner脚本. 实现思路 windows定时任务+BAT脚本 BAT脚本: SET M_ROOT=C:\Program File ...

随机推荐

  1. 复制物料(参考的MMCC想法)

    MMCC这个事务码没用过,也是才听到的,都是业务搞起来的...然后感觉这个东西有点意思,就搞搞咯 网上找的一篇文章,自己修改的.改了默认收货工厂为创建时的工厂,因为这边一直报收货工厂必输...不管是不 ...

  2. 关于DYNPRO程序的系统迁移与版本不匹配问题之一

    前段时间公司做的一个项目,这两天在将项目程序导入公司,出问题了,搞了半天才发现是系统版本问题,但是还是不知道怎么解决,纠结ING... DYNRPO程序在创建(或是首次运行)的时候会自动生成一个DYN ...

  3. vim 编辑器使用积累(for win)

    开个坑,记录一下使用vim的进化历程.这东西不是一两天用的精的,多用自然就觉得有很多地方需要进一步学习,慢慢的效率就上来了. 首先我大部分时间都是在win上做开发,win上的vim需要去自己去配置诸多 ...

  4. 怎么解决xp系统不能安装NET Framework4.0?

    第一步: 如果是XP系统: 1.开始——运行——输入cmd——回车——在打开的窗口中输入net stop WuAuServ 2.开始——运行——输入%windir% 3.在打开的窗口中有个文件夹叫So ...

  5. SQL 存储过程 解析XML

    第一种说明: 我看过这样一篇文章,如下 在SQL   Server2005中,微软延续了   2000中一个特性(即支持XML类型的数据),并加强了对XML   数据列.XML变量以及XML索引的支持 ...

  6. javascript和jquey的自定义事件小结

    “通过事件机制,可以将类设计为独立的模块,通过事件对外通信,提高了程序的开发效率.” 可以把多个关联但逻辑复杂的操作利用自定义事件的机制灵活地控制好 对象之间通过直接方法调用来交互 1)对象A直接调用 ...

  7. 几种jQuery 实现无限滚动的插件

    1.EndLess Scroll 2.infinite-scroll插件的使用

  8. C#.NET微信公众账号接口开发系列文章整理--微信接口开发目录,方便需要的博友查询

    前言: 涉及微信接口开发比较早也做的挺多的,有时间的时候整理了开发过程中一些思路案例,供刚学习微信开发的朋友参考.其实微信接口开发还是比较简单的,但是由于调试比较麻烦,加上微信偶尔也会给开发者挖坑,并 ...

  9. eclipse 高亮代码

    本文整合自网络上的两种靠谱的使eclipse代码高亮的方式. 其实你可以在Window->proferences->java->editor->syndex coloring- ...

  10. GestureDetectorl监听

    package com.example.gesturedetectorinterface; /** * write by harvic * 2014-9-25 * blog.csdn.net/harv ...