public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { EditorGUI.BeginProperty(position, label, property); GUILayout.Space(-15f); EditorGUILayout.PropertyField(property.FindPropertyRelative("enabled")); SerializedProperty targetingMode = property.FindPropertyRelative("targetingMode"); EditorGUILayout.PropertyField(targetingMode); switch (targetingMode.enumValueIndex) { case (int)ForceField2D.SelectionMethod.ETargetingMode.Collider2D: ForceField2D ff = property.serializedObject.targetObject as ForceField2D; if (ff.GetComponent <Collider2D>() == null && ff.GetComponent <Rigidbody2D>() == null) { EditorGUILayout.HelpBox(noColliderWarning, MessageType.Warning); } break; case (int)ForceField2D.SelectionMethod.ETargetingMode.Raycast: EditorGUILayout.PropertyField(property.FindPropertyRelative("rayCastOption"), true); break; case (int)ForceField2D.SelectionMethod.ETargetingMode.Manual: EditorGUILayout.PropertyField(property.FindPropertyRelative("targetsList"), true); break; } EditorGUI.EndProperty(); }
void OnEnable() { forceField = target as ForceField2D; alwaysIgnoredList = serializedObject.FindProperty("alwaysIgnoredList"); selectionMethods = serializedObject.FindProperty("selectionMethods"); fieldFunctions = serializedObject.FindProperty("fieldFunctions"); layerMask = serializedObject.FindProperty("layerMask"); sendMessage = serializedObject.FindProperty("sendMessage"); showTooltips = serializedObject.FindProperty("showTooltips"); gizmosMode = serializedObject.FindProperty("gizmosMode"); drawTargetsConnection = serializedObject.FindProperty("drawTargetsConnection"); drawFieldPointers = serializedObject.FindProperty("drawFieldPointers"); drawRaycastArea = serializedObject.FindProperty("drawRaycastArea"); targetsConnectionColor = serializedObject.FindProperty("targetsConnectionColor"); testObject = serializedObject.FindProperty("testObject"); pointerLength = serializedObject.FindProperty("pointerLength"); pointerSpace = serializedObject.FindProperty("pointerSpace"); pointerXCount = serializedObject.FindProperty("pointerXCount"); pointerYCount = serializedObject.FindProperty("pointerYCount"); strongPointerColor = serializedObject.FindProperty("strongPointerColor"); weakPointerColor = serializedObject.FindProperty("weakPointerColor"); strongThreshold = serializedObject.FindProperty("strongThreshold"); weakThreshold = serializedObject.FindProperty("weakThreshold"); raycastColor = serializedObject.FindProperty("raycastColor"); generalMultiplier = serializedObject.FindProperty("generalMultiplier"); useLocalSpace = serializedObject.FindProperty("useLocalSpace"); }