Skip to content

Commit 2e8c8f9

Browse files
Merge pull request #85 from AlexeyTaranov/dev
Dev
2 parents b96c3c6 + 8858657 commit 2e8c8f9

28 files changed

Lines changed: 519 additions & 209 deletions

Editor/Dropdown/SerializeReferenceAdvancedDropdown.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ public SerializeReferenceAdvancedDropdown(AdvancedDropdownState state, IEnumerab
2222
onSelectedTypeIndex = onSelectedNewType;
2323
}
2424

25-
public SerializeReferenceAdvancedDropdown(AdvancedDropdownState state, IEnumerable<Type> types,
26-
Action<int> onSelectedNewType) :
25+
public SerializeReferenceAdvancedDropdown(AdvancedDropdownState state, IReadOnlyList<Type> types,
26+
Action<Type> onSelectedNewType) :
2727
base(state)
2828
{
2929
this.types = types;
30-
onSelectedTypeIndex = onSelectedNewType;
30+
onSelectedTypeIndex = i => onSelectedNewType.Invoke(types[i]);
3131
}
3232

3333
protected override AdvancedDropdownItem BuildRoot()

Editor/Dropdown/SerializeReferencePropertyDrawer.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,18 @@ public static string GetTypeName(Type type)
9090
return genericName;
9191
}
9292

93+
if (type.IsNested)
94+
{
95+
var typeName = type.FullName;
96+
var lastDot = typeName?.LastIndexOf('.');
97+
if (lastDot > 0)
98+
{
99+
typeName = typeName.Substring(lastDot.Value + 1);
100+
}
101+
102+
return ObjectNames.NicifyVariableName(typeName);
103+
}
104+
93105
return ObjectNames.NicifyVariableName(type.Name);
94106
}
95107

@@ -141,9 +153,9 @@ bool IsImplementedGenericInterfacesFromGenericProperty(Type type)
141153
}
142154
}
143155

144-
private void WriteNewInstanceByIndexType(int typeIndex, SerializedProperty property, bool registerUndo)
156+
public static void WriteNewInstanceByType(Type newType,
157+
SerializedProperty property, Rect propertyRect, bool registerUndo)
145158
{
146-
var newType = assignableTypes[typeIndex];
147159
var propertyType = TypeUtils.ExtractTypeFromString(property.managedReferenceFieldTypename);
148160

149161
if (newType?.IsGenericType == true)

Editor/Dropdown/SerializeReferencePropertyDrawer_IMGUI.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55

66
namespace SerializeReferenceDropdown.Editor.Dropdown
77
{
8-
[CustomPropertyDrawer(typeof(SerializeReferenceDropdownAttribute))]
9-
public partial class SerializeReferencePropertyDrawer : PropertyDrawer
8+
public partial class SerializeReferencePropertyDrawer
109
{
1110
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
1211
{
@@ -62,7 +61,7 @@ private void DrawIMGUITypeDropdown(Rect rect, SerializedProperty property, GUICo
6261
{
6362
var dropdown = new SerializeReferenceAdvancedDropdown(new AdvancedDropdownState(),
6463
assignableTypes,
65-
index => WriteNewInstanceByIndexType(index, property, registerUndo: true));
64+
type => WriteNewInstanceByType(type, property, propertyRect, registerUndo: true));
6665
dropdown.Show(dropdownRect);
6766
}
6867

Editor/Dropdown/SerializeReferencePropertyDrawer_UIToolkit.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313

1414
namespace SerializeReferenceDropdown.Editor.Dropdown
1515
{
16-
[CustomPropertyDrawer(typeof(SerializeReferenceDropdownAttribute))]
17-
public partial class SerializeReferencePropertyDrawer : PropertyDrawer
16+
public partial class SerializeReferencePropertyDrawer
1817
{
1918
private StyleColor defaultSelectTypeTextColor;
2019

@@ -142,7 +141,7 @@ void ShowDropdown()
142141
{
143142
var dropdown = new SerializeReferenceAdvancedDropdown(new AdvancedDropdownState(),
144143
assignableTypes,
145-
index => { WriteNewInstanceByIndexType(index, property, registerUndo: true); });
144+
type => { WriteNewInstanceByType(type, property, propertyRect, registerUndo: true); });
146145
var buttonMatrix = selectTypeButton.worldTransform;
147146
var position = new Vector3(buttonMatrix.m03, buttonMatrix.m13, buttonMatrix.m23);
148147
var buttonRect = new Rect(position, selectTypeButton.contentRect.size);
@@ -212,7 +211,6 @@ void RefreshInspector()
212211
void ModifyDirectType()
213212
{
214213
var prop = property.serializedObject.FindProperty(propertyPath);
215-
var targetUnityObject = property.serializedObject.targetObject;
216214
if (TryGetMissingType(property, assetPath, out var missingType))
217215
{
218216
var typeData = new TypeData()

Editor/EditReferenceType/EditReferenceTypeWindow.cs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
11
using System;
22
using System.IO;
33
using SerializeReferenceDropdown.Editor.Utils;
4+
using SerializeReferenceDropdown.Editor.YAMLEdit;
45
using UnityEditor;
56
using UnityEngine.UIElements;
67

78
namespace SerializeReferenceDropdown.Editor.EditReferenceType
89
{
9-
public struct TypeData
10-
{
11-
public string AssemblyName;
12-
public string Namespace;
13-
public string ClassName;
14-
15-
public string BuildSRTypeStr() => $"class: {ClassName}, ns: {Namespace}, asm: {AssemblyName}";
16-
}
17-
1810
public class EditReferenceTypeWindow : EditorWindow
1911
{
2012
private static EditReferenceTypeWindow instance;

Editor/RefTo/RefToContextMenu.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#if UNITY_2023_2_OR_NEWER
21
using System;
32
using UnityEditor;
43
using UnityEngine;
@@ -124,4 +123,3 @@ public static void PasteToProperty(SerializedProperty pasteProperty)
124123
}
125124
}
126125
}
127-
#endif

Editor/RefTo/RefToExtensions.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#if UNITY_2023_2_OR_NEWER
21
using System;
32
using System.Reflection;
43
using SerializeReferenceDropdown.Editor.Utils;
@@ -149,4 +148,3 @@ public static (Type refType, Type targetType, Type hostType, Object host, bool i
149148
}
150149
}
151150
}
152-
#endif

0 commit comments

Comments
 (0)