12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 9198|回复: 10
打印 上一主题 下一主题

[其他] Unity3D自动保存场景

[复制链接]

6

主题

1

听众

1473

积分

助理设计师

Rank: 4

纳金币
126
精华
1
跳转到指定楼层
楼主
发表于 2013-5-24 21:45:12 |只看该作者 |倒序浏览
由于Unity有自动崩溃的BUG每次崩溃的时候由于项目没有保存所以Hierarchy视图游戏对象与游戏资源的关系就会丢失,所以想到自动保存场景。(脚本来自维基百科)

  1. using UnityEngine;
  2. using UnityEditor;
  3. using System;
  4. public class AutoSave : EditorWindow {
  5.     private bool autoSaveScene = true;
  6.     private bool showMessage = true;
  7.     private bool isStarted = false;
  8.     private int intervalScene;
  9.     private DateTime lastSaveTimeScene = DateTime.Now;
  10.     private string projectPath = Application.dataPath;
  11.     private string scenePath;
  12.     [MenuItem ("Window/AutoSave")]
  13.     static void Init () {
  14.         AutoSave saveWindow = (AutoSave)EditorWindow.GetWindow (typeof (AutoSave));
  15.         saveWindow.Show();
  16.     }
  17.     void OnGUI () {
  18.         GUILayout.Label ("Info:", EditorStyles.boldLabel);
  19.         EditorGUILayout.LabelField ("Saving to:", ""+projectPath);
  20.         EditorGUILayout.LabelField ("Saving scene:", ""+scenePath);
  21.         GUILayout.Label ("Options:", EditorStyles.boldLabel);
  22.         autoSaveScene = EditorGUILayout.BeginToggleGroup ("Auto save", autoSaveScene);
  23.         intervalScene = EditorGUILayout.IntSlider ("Interval (minutes)", intervalScene, 1, 10);
  24.         if(isStarted) {
  25.             EditorGUILayout.LabelField ("Last save:", ""+lastSaveTimeScene);
  26.         }
  27.         EditorGUILayout.EndToggleGroup();
  28.         showMessage = EditorGUILayout.BeginToggleGroup ("Show Message", showMessage);
  29.         EditorGUILayout.EndToggleGroup ();
  30.     }
  31.     void Update(){
  32.         scenePath = EditorApplication.currentScene;
  33.         if(autoSaveScene) {
  34.             if(DateTime.Now.Minute >= (lastSaveTimeScene.Minute+intervalScene) || DateTime.Now.Minute == 59 && DateTime.Now.Second == 59){
  35.                 saveScene();
  36.             }
  37.         } else {
  38.             isStarted = false;
  39.         }
  40.     }
  41.     void saveScene() {
  42.         EditorApplication.SaveScene(scenePath);
  43.         lastSaveTimeScene = DateTime.Now;
  44.         isStarted = true;
  45.         if(showMessage){
  46.             Debug.Log("AutoSave saved: "+scenePath+" on "+lastSaveTimeScene);
  47.         }
  48.         AutoSave repaintSaveWindow = (AutoSave)EditorWindow.GetWindow (typeof (AutoSave));
  49.         repaintSaveWindow.Repaint();
  50.     }
  51. }
复制代码
因为这个编辑窗口必须在激活状态,所以 你可以把它附属在某个窗口下面 比如Project视图。


jjj.png
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

955

主题

164

听众

7万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
59338
精华
28

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

沙发
发表于 2013-5-24 21:49:38 |只看该作者
感谢分享这个脚本,很实用的功能!
回复

使用道具 举报

6

主题

1

听众

1473

积分

助理设计师

Rank: 4

纳金币
126
精华
1
板凳
发表于 2013-5-24 22:02:45 |只看该作者
艾西格亚 发表于 2013-5-24 21:49
感谢分享这个脚本,很实用的功能!

哈哈~~~天天看着老大你分享那么多好东西~我们也稍微做点力所能及贡献啊~~~
回复

使用道具 举报

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53488
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

地板
发表于 2013-5-24 22:42:00 |只看该作者
wow,这个不错的功能啊,解决了一些保存的问题,感谢楼主!
回复

使用道具 举报

0

主题

0

听众

20

积分

设计初学者

Rank: 1

纳金币
18
精华
0
5#
发表于 2013-5-27 11:14:57 |只看该作者
it is good
回复

使用道具 举报

17

主题

1

听众

464

积分

设计实习生

Rank: 2

纳金币
149
精华
0

最佳新人

6#
发表于 2013-5-27 15:32:29 |只看该作者
it is good too
回复

使用道具 举报

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

7#
发表于 2013-5-27 18:58:01 |只看该作者
不错的脚本,学习了!
回复

使用道具 举报

0

主题

1

听众

273

积分

设计实习生

Rank: 2

纳金币
0
精华
0

最佳新人

8#
发表于 2013-5-27 21:03:57 |只看该作者
感谢分享
回复

使用道具 举报

may    

8830

主题

81

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
52352
精华
343

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

9#
发表于 2013-5-31 04:54:48 |只看该作者
不错的功能,希望unity可以内建这样的东西
回复

使用道具 举报

0

主题

0

听众

28

积分

设计初学者

Rank: 1

纳金币
3
精华
0
10#
发表于 2014-11-18 17:05:45 |只看该作者
求教,我把脚本放在自建的Editor中没出来对应的窗口
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-7-27 21:07 , Processed in 0.066657 second(s), 36 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部