From d2ab30e7a69bfe7efda63ae75812207377917bd3 Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Sun, 30 Mar 2025 18:50:27 +0000 Subject: [PATCH] Merge branch 'Flexalon-UI-Layouts' into develop --- Assets/Flexalon/Editor/Cloner/FlexalonClonerEditor.cs | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 60 insertions(+), 0 deletions(-) diff --git a/Assets/Flexalon/Editor/Cloner/FlexalonClonerEditor.cs b/Assets/Flexalon/Editor/Cloner/FlexalonClonerEditor.cs new file mode 100644 index 0000000..71e3f8d --- /dev/null +++ b/Assets/Flexalon/Editor/Cloner/FlexalonClonerEditor.cs @@ -0,0 +1,60 @@ +using UnityEditor; +using UnityEngine; + +namespace Flexalon.Editor +{ + [CustomEditor(typeof(FlexalonCloner)), CanEditMultipleObjects] + public class FlexalonClonerEditor : UnityEditor.Editor + { + private SerializedProperty _objects; + private SerializedProperty _cloneType; + private SerializedProperty _count; + private SerializedProperty _randomSeed; + private SerializedProperty _dataSource; + + [MenuItem("GameObject/Flexalon/Cloner")] + public static void Create(MenuCommand command) + { + FlexalonComponentEditor.Create<FlexalonCloner>("Cloner", command.context); + } + + void OnEnable() + { + _objects = serializedObject.FindProperty("_objects"); + _cloneType = serializedObject.FindProperty("_cloneType"); + _count = serializedObject.FindProperty("_count"); + _randomSeed = serializedObject.FindProperty("_randomSeed"); + _dataSource = serializedObject.FindProperty("_dataSource"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + EditorGUILayout.PropertyField(_objects, true); + EditorGUILayout.PropertyField(_cloneType); + + if ((target as FlexalonCloner).DataSource == null) + { + EditorGUILayout.PropertyField(_count); + } + + if ((target as FlexalonCloner).CloneType == FlexalonCloner.CloneTypes.Random) + { + EditorGUILayout.PropertyField(_randomSeed); + } + + EditorGUILayout.PropertyField(_dataSource); + + if (serializedObject.ApplyModifiedProperties()) + { + if (Application.isPlaying) + { + foreach (var target in targets) + { + (target as FlexalonCloner).MarkDirty(); + } + } + } + } + } +} \ No newline at end of file -- Gitblit v1.9.3