//---------------------------------------------------------------------- private void ShowObjectSelector( int controlID, SerializedProperty property) { var target = property.objectReferenceValue; var objectType = fieldInfo.FieldType; var allowSceneObjects = AllowSceneObjects(property); ObjectSelector.Show( controlID, target, objectType, property, allowSceneObjects); }
//---------------------------------------------------------------------- private void DoContextMenuGUI( Rect position, SerializedProperty property) { if (attribute.canCreateSubasset == false) { return; } var controlID = GetControlID(position); ObjectSelector.DoGUI(controlID, property, SetObjectReferenceValue); var buttonRect = position; buttonRect.xMin = buttonRect.xMax - 16; var buttonStyle = EditorStyles.label; var isRepaint = Event.current.type == EventType.Repaint; if (isRepaint) { var dropDownStyle = gui.inDropDownStyle; var rect = buttonRect; rect.x += 2; rect.y += 6; dropDownStyle.Draw(rect, false, false, false, false); } var noLabel = GUIContent.none; if (GUI.Button(buttonRect, noLabel, buttonStyle)) { var types = GetConcreteTypes(fieldInfo.FieldType); ShowContextMenu( buttonRect, controlID, property, types); } }