Exemple #1
0
        private void OnEnable()
        {
            Cacher = ScriptableObjectExtension.ReadAsset <BGMListCacher>(CachePath);
            if (!Cacher)
            {
                ScriptableObjectExtension.WriteAsset(Cacher, CachePath);
            }


            so          = new SerializedObject(Cacher);
            BGMListView = new ReorderableList(so, so.FindProperty("BGM"));


            Instance = this;


            BGMListView.drawElementCallback =
                (Rect rect, int index, bool isActive, bool isFocused) =>
            {
                var element = BGMListView.serializedProperty.GetArrayElementAtIndex(index);
                rect.y += 2;

                EditorGUI.PropertyField(
                    new Rect(rect.x, rect.y, position.width / 2f, EditorGUIUtility.singleLineHeight),
                    element.FindPropertyRelative("Audio"), GUIContent.none);
                EditorGUI.PropertyField(
                    new Rect(rect.x + position.width / 2f, rect.y, position.width / 3f, EditorGUIUtility.singleLineHeight),
                    element.FindPropertyRelative("Tag"), GUIContent.none);
            };

            BGMListView.onChangedCallback = (list) =>
            {
            };
        }
        static void Init()
        {
            PrefabCacherWindow window = (PrefabCacherWindow)EditorWindow.GetWindow(typeof(PrefabCacherWindow));

            window.Show();

            window.titleContent = new GUIContent("Prefeb Cacher");

            gmp = ScriptableObjectExtension.ReadAsset <PrefabCacher>(AssetSave);
        }
        void OnGUI()
        {
            if (Application.isPlaying)
            {
                GUILayout.Label("Please exit Play Mode then reopen this window.", GUILayout.Width(position.width));
                return;
            }


            if (gmp != null)
            {
                scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(position.width), GUILayout.Height(position.height - 2 * EditorGUIUtility.singleLineHeight));

                GUILayout.Label("Cached Prefabs:" + gmp.GetAllPrefab().Count, GUILayout.Width(EditorGUIUtility.labelWidth));

                foreach (PrefabCacher.PrefabCache pc in gmp.GetAllPrefab())
                {
                    EditorGUILayout.BeginHorizontal();
                    GUILayout.Label(pc.gameObject.name, GUILayout.Width(EditorGUIUtility.labelWidth));
                    GUILayout.Label(pc.path, GUILayout.Width(position.width * 0.97f - EditorGUIUtility.labelWidth));
                    EditorGUILayout.EndHorizontal();
                }

                EditorGUILayout.EndScrollView();
            }



            if (GUILayout.Button("UPDATE CACHE"))
            {
                gmp = new PrefabCacher();
                ScriptableObjectExtension.DeleteAsset(AssetSave);

                gmp.UpdateCache(LoadAllPrefab());
                ScriptableObjectExtension.WriteAsset(gmp, AssetSave);
            }
        }
Exemple #4
0
 public static void CreateAsset()
 {
     ScriptableObjectExtension.CreateAsset <GimmickData>();
 }
        public static void Recompile()
        {
            string scriptPath = ScriptableObjectExtension.GetScriptPath <Recompiler>();

            AssetDatabase.ImportAsset(scriptPath, ImportAssetOptions.ForceUpdate);
        }
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            GUILayout.Space(10);

            #region Inspector

            GUILayout.BeginVertical("Easy Build System - Group Behaviour", "window", GUILayout.Height(10));

            GUILayout.BeginVertical("box");

            GUI.color = MainEditor.GetEditorColor;

            GUILayout.BeginHorizontal();

            GUILayout.Label("Group Behaviour Settings", EditorStyles.largeLabel);

            #region Group Behaviour Settings

            GUILayout.FlexibleSpace();

            if (GUILayout.Button(DefaultInspector ? "Advanced Inspector" : "Default Inspector", GUILayout.Width(130)))
            {
                DefaultInspector = !DefaultInspector;
            }

            if (GUILayout.Button(AllIsOpen ? "Fold In" : "Fold Out", GUILayout.Width(80)))
            {
                AddonsFoldout = !AddonsFoldout;
                AllIsOpen     = !AllIsOpen;
            }

            if (GUILayout.Button(Help ? "Hide Help" : "Show Help", GUILayout.Width(100)))
            {
                Help = !Help;
            }

            GUI.color = Color.white;

            GUILayout.EndHorizontal();

            if (Help)
            {
                EditorGUILayout.HelpBox("This component allows to save and load of Group Behaviour which contains of Parts Behaviour during the edit/runtime.\n" +
                                        "The data below can be shared and loaded if the Build Manager use the same Id's in the Parts Collection.", MessageType.Info);

                GUI.color = MainEditor.GetEditorColor;

                if (GUILayout.Button("Open Documentation Link"))
                {
                    Application.OpenURL(Constants.DOCS_LINK);
                }

                GUI.color = Color.white;
            }

            if (DefaultInspector)
            {
                DrawDefaultInspector();

                GUILayout.EndVertical();

                GUILayout.EndVertical();

                serializedObject.ApplyModifiedProperties();

                GUILayout.Space(10);

                return;
            }

            GUI.enabled = false;

            EditorGUILayout.ObjectField("Script", target, typeof(AreaBehaviour), true);

            GUI.enabled = true;

            GUI.color = Color.white;

            if (Application.isPlaying)
            {
                GUILayout.BeginHorizontal();

                GUILayout.BeginVertical();

                GUI.color = MainEditor.GetEditorColor;

                if (GUILayout.Button("Save As Blueprint..."))
                {
                    BlueprintData Data = ScriptableObjectExtension.CreateAsset <BlueprintData>("New Empty Blueprint");

                    Data.name  = Target.name;
                    Data.Model = Target.GetModel();
                    Data.Data  = Target.GetModel().EncodeToStr();

                    Debug.Log("<b><color=cyan>[Easy Build System]</color></b> : The blueprint model has been saved.");
                }

                if (GUILayout.Button("Destroy Group"))
                {
                    Destroy(Target.gameObject);

                    Debug.Log("<b><color=cyan>[Easy Build System]</color></b> : The group has been destroyed.");
                }

                GUI.enabled = true;

                GUI.color = Color.white;

                GUILayout.EndVertical();

                GUILayout.EndHorizontal();
            }

            #endregion Group Behaviour Settings

            GUI.color = MainEditor.GetEditorColor;

            GUILayout.Label("Group Add-On(s) Settings", EditorStyles.largeLabel);

            #region Group Add-Ons Settings

            GUI.color = Color.white;

            GUILayout.BeginHorizontal();

            GUILayout.Space(13);

            AddonsFoldout = EditorGUILayout.Foldout(AddonsFoldout, "Add-Ons Section Settings");

            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();

            GUILayout.Space(13);

            GUILayout.BeginVertical();

            if (AddonsFoldout)
            {
                MainEditor.DrawAddons(Target, AddOnTarget.GroupBehaviour);
            }

            GUILayout.EndVertical();

            GUILayout.EndHorizontal();

            #endregion Group Add-Ons Settings

            GUILayout.EndVertical();

            GUILayout.EndVertical();

            #endregion Inspector

            serializedObject.ApplyModifiedProperties();

            GUILayout.Space(10);
        }
Exemple #7
0
 public static void CreateAsset()
 {
     ScriptableObjectExtension.CreateAsset <PlaceDivisionData>();
 }
Exemple #8
0
 public static void EditorCreateBlueprintData()
 {
     ScriptableObjectExtension.CreateAsset <BlueprintData>("New Empty Blueprint...");
 }
Exemple #9
0
 public static void EditorCreatePartsCollection()
 {
     ScriptableObjectExtension.CreateAsset <PartsCollection>("New Parts Collection...");
 }
 public static void CreateAsset()
 {
     ScriptableObjectExtension.CreateAsset <NPCTubeData>();
 }
 public static void CreateAsset()
 {
     ScriptableObjectExtension.CreateAsset <AbnormalData>();
 }
Exemple #12
0
 private void OnDisable()
 {
     ScriptableObjectExtension.SaveAsset();
 }