-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKuEditorSceneManager.cs
More file actions
97 lines (85 loc) · 3.68 KB
/
KuEditorSceneManager.cs
File metadata and controls
97 lines (85 loc) · 3.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
using System;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace KuFramework.EditorTools
{
internal class KuEditorSceneManager : EditorWindow
{
private string myString = "Hello World";
private bool groupEnabled;
private bool myBool = true;
private float myFloat = 1.23f;
private Texture texture;
private static IEditorScenePanel mScenePanel = new EditorScenePanel();
private static List<SceneInfo> mSceneInfoList = new List<SceneInfo>();
private static Vector2 mPos;
[MenuItem("Tools/ScenesManager %`")]
private static void ShowSceneManagerPanel()
{
EditorWindow window = GetWindow(typeof(KuEditorSceneManager), false, "EditorSceneManager", true);
window.position = new Rect(Screen.width / 2, Screen.height / 2, 600, 500);
window.Show();
mSceneInfoList = mScenePanel.GetSceneInfo();
}
private void OnGUI()
{
UpdateInfoList();
ShowScrollSceneInfo();
ShowFixedButton();
}
private static void ShowFixedButton()
{
if (GUILayout.Button("Open Build Settings"))
mScenePanel.OpenBuildSettingPanel();
}
private static void UpdateInfoList()
{
if (mSceneInfoList.Count == 0)
mSceneInfoList = mScenePanel.GetSceneInfo();
}
private void ShowScrollSceneInfo()
{
mPos = EditorGUILayout.BeginScrollView(mPos);
for (int i = 0; i < mSceneInfoList.Count; i++)
{
ShowSingleSceneInfo(i);
}
EditorGUILayout.EndScrollView();
//UnityEngine.Debug.Log(UnityEditor.SceneManagement.StageUtility.GetCurrentStageHandle().ToString());
}
private static void ShowSingleSceneInfo(int i)
{
GUILayout.Label(string.Format("{0}.{1}", (i + 1).ToString(), mSceneInfoList[i].sceneName), EditorStyles.boldLabel);
GUILayout.Label(string.Format("active : {1}\t\tsize : {0}KB", mSceneInfoList[i].sceneSize, (mSceneInfoList[i].isActive ? "true" : "false")));
GUILayout.Label("path : " + mSceneInfoList[i].scenePath);
EditorGUILayout.BeginHorizontal();
if (GUILayout.Button("Open"))
mScenePanel.OpenScene(mSceneInfoList[i].scenePath);
if (GUILayout.Button("Delete"))
mScenePanel.DeleteScene(mSceneInfoList[i].scenePath);
if (GUILayout.Button("Add To BuildList"))
mScenePanel.AddSceneToBuildList(mSceneInfoList[i].scenePath);
if (GUILayout.Button("Open In Directory"))
mScenePanel.OpenInDirectory(mSceneInfoList[i].scenePath, mSceneInfoList[i].sceneName);
EditorGUILayout.EndHorizontal();
GUILayout.Label("");
//EditorGUI.ColorField(new Rect(0,0,200,200),"test123" , new Color(1, 1, 1,0.5f));
}
internal static void UpdatePanel()
{
mSceneInfoList.Clear();
}
private void ShowOtherInfo()
{
//UnityEngine.Debug.Log("GUI");
GUILayout.Label("Title", EditorStyles.boldLabel);
myString = EditorGUILayout.TextField("Text field", myString);
groupEnabled = EditorGUILayout.BeginToggleGroup("Toggle group", groupEnabled);
myBool = EditorGUILayout.Toggle("Toggle", myBool);
myFloat = EditorGUILayout.Slider("Slider", myFloat, -3, 3);
EditorGUILayout.EndToggleGroup();
texture = EditorGUILayout.ObjectField("Add texture", texture, typeof(Texture), true) as Texture;
}
}
}