private void DrawpopupStrategyImplementations(SerializedProperty property, GUIContent label) { if (_propertyField == null) { return; } if (_interfaceTypes == null) { _interfaceTypes = EditorUtils.GetAllOfInterface(_propertyField.FieldType); } if (_interfaceTypes == null) { EditorGUILayout.HelpBox("Not found strategy implementations", MessageType.Warning); return; } if (_interfaceNames == null) { InitializeInterfacesNames(); } if (_strategyFieldValue != null) { _strategyImplementationIndex = 1 + _interfaceTypes.FindIndex(0, type => type == _strategyFieldValue.GetType()); } var defaultLabelWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 10; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(label, GetLabelGUIStyle()); _strategyImplementationIndex = EditorGUILayout.Popup(_strategyImplementationIndex, _interfaceNames); EditorGUILayout.EndHorizontal(); EditorGUIUtility.labelWidth = defaultLabelWidth; }