Skip to content
This repository was archived by the owner on May 9, 2025. It is now read-only.

Commit 23b313b

Browse files
Implemented GameObjectSet and support for reorderable list object fields
1 parent e748e2e commit 23b313b

File tree

5 files changed

+136
-3
lines changed

5 files changed

+136
-3
lines changed
Loading

Assets/SO Architecture/Editor/Icons/Runtime Sets/GameObjectRuntimeSetsIcon.png.meta

Lines changed: 99 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/SO Architecture/Editor/Inspectors/RuntimeSetEditor.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using UnityEditor;
1+
using System.Reflection;
2+
using UnityEditor;
23
using UnityEditorInternal;
34
using UnityEngine;
45

@@ -8,12 +9,15 @@ public class RuntimeSetEditor : Editor
89
private SOArchitectureBaseObject Target { get { return (SOArchitectureBaseObject)target; } }
910
private SerializedProperty DeveloperDescription { get { return serializedObject.FindProperty("DeveloperDescription"); } }
1011

11-
private ReorderableList _reorderableList;
12+
private ReorderableList _reorderableList;
13+
private System.Type _targetType;
1214

1315
private void OnEnable()
1416
{
1517
SerializedProperty items = serializedObject.FindProperty("_items");
1618

19+
_targetType = Target.GetType().BaseType.GetGenericArguments()[0];
20+
1721
_reorderableList = new ReorderableList(items.serializedObject, items);
1822
_reorderableList.drawElementCallback += DrawElement;
1923
}
@@ -32,7 +36,15 @@ private void DrawElement(Rect rect, int index, bool isActive, bool isFocused)
3236

3337
SerializedProperty property = _reorderableList.serializedProperty.GetArrayElementAtIndex(index);
3438

35-
EditorGUI.PropertyField(rect, property);
39+
40+
if(property.propertyType == SerializedPropertyType.ObjectReference)
41+
{
42+
property.objectReferenceValue = EditorGUI.ObjectField(rect, "Element " + index, property.objectReferenceValue, _targetType, true);
43+
}
44+
else
45+
{
46+
EditorGUI.PropertyField(rect, property);
47+
}
3648

3749
property.serializedObject.ApplyModifiedProperties();
3850
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using System.Collections;
2+
using System.Collections.Generic;
3+
using UnityEngine;
4+
5+
[CreateAssetMenu(
6+
fileName = "GameObjectSet.asset",
7+
menuName = SOArchitecture_Utility.SETS_SUBMENU + "GameObject",
8+
order = SOArchitecture_Utility.ASSET_MENU_ORDER)]
9+
public class GameObjectSet : RuntimeSet<GameObject>
10+
{
11+
}

Assets/SO Architecture/Runtime Sets/GameObjectSet.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)