static void Init() { BSGWindow myWindow = (BSGWindow)GetWindow(typeof(BSGWindow)); myWindow.titleContent = new GUIContent("Build Scene Generator"); bsgObject = new GameObject("BSG"); bsgObject.hideFlags = HideFlags.HideInHierarchy; bsgObject.AddComponent <BSGButtonScript>(); inspectorGUICode = bsgObject.GetComponent <BSGButtonScript>(); customEditor = Editor.CreateEditor(inspectorGUICode); inspectorGUICode.Populate(); }
void OnGUI() { scrollBarPos = GUILayout.BeginScrollView(scrollBarPos, false, true, GUILayout.ExpandHeight(true)); GameObject asset = (GameObject)AssetDatabase.LoadAssetAtPath("Assets/BSG/BSG.prefab", typeof(GameObject)); if (asset != null) { BSGButtonScript targetComp = asset.GetComponent <BSGButtonScript>(); if (targetComp != null) { var editor = Editor.CreateEditor(targetComp); editor.OnInspectorGUI(); } else { Debug.Log("BSGButtonScript | Not Found!"); } } else { Debug.Log("Assets/BSG/BSG.prefab | Not Found!"); } GUILayout.EndScrollView(); }
public override void OnInspectorGUI() { BSGButtonScript myScript = (BSGButtonScript)target; serializedObject.Update(); GUILayout.Box("Build Settings Generator"); GUILayout.Label("Current scenes in Build", EditorStyles.boldLabel); EditorGUILayout.PropertyField(serializedObject.FindProperty("currentScenes"), true); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Current settings", EditorStyles.boldLabel); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Get scenes list", GUILayout.MaxWidth(175), GUILayout.Height(25))) { myScript.Populate(); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUI.BeginChangeCheck(); GUILayout.Space(10.0f); GUILayout.Label("Custom scenes in Build", EditorStyles.boldLabel); GUILayout.BeginHorizontal(); GUILayout.Label("List size: ", GUILayout.Height(25)); if (GUILayout.Button("-", EditorStyles.miniButtonLeft, GUILayout.MaxWidth(25), GUILayout.Height(25))) { myScript.DecreaseListSize(); } if (GUILayout.Button("+", EditorStyles.miniButtonRight, GUILayout.MaxWidth(25), GUILayout.Height(25))) { myScript.IncreaseListSize(); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.PropertyField(serializedObject.FindProperty("customScenes"), true); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Custom scenes in Build", EditorStyles.boldLabel, GUILayout.MaxWidth(175)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Apply new settings", GUILayout.MaxWidth(175), GUILayout.Height(25))) { myScript.AddScene(); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.Label("Info Ouput"); GUILayout.TextArea(myScript.Errors); if (GUILayout.Button("Clear", GUILayout.Width(50))) { myScript.Clear(); } if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } }