protected void DrawBase() { SerializedProperty typeProperty = serializedObject.FindProperty("_Type"); EditorGUILayout.PropertyField(typeProperty); EditorGUILayout.PropertyField(serializedObject.FindProperty("_Duration")); EditorGUILayout.PropertyField(serializedObject.FindProperty("_Curve")); if (!_Target.fixedUpdate && !_Target.forceRealtime) { EditorGUILayout.PropertyField(serializedObject.FindProperty("_UseRealtime")); } TweenBase.Type type = EnumUtility.GetValueFromIndex <TweenBase.Type>(typeProperty.enumValueIndex); if (type != TweenBase.Type.Once) { SerializedProperty repeatUntilTransition = serializedObject.FindProperty("_RepeatUntilTransition"); EditorGUILayout.PropertyField(repeatUntilTransition); SerializedProperty primitiveTypeProperty = repeatUntilTransition.FindPropertyRelative("_Type"); FlexiblePrimitiveType primitiveType = EnumUtility.GetValueFromIndex <FlexiblePrimitiveType>(primitiveTypeProperty.enumValueIndex); switch (primitiveType) { case FlexiblePrimitiveType.Constant: { SerializedProperty valueProperty = repeatUntilTransition.FindPropertyRelative("_Value"); valueProperty.intValue = Mathf.Max(valueProperty.intValue, 1); } break; case FlexiblePrimitiveType.Random: { SerializedProperty minProperty = repeatUntilTransition.FindPropertyRelative("_MinRange"); minProperty.intValue = Mathf.Max(minProperty.intValue, 1); SerializedProperty maxProperty = repeatUntilTransition.FindPropertyRelative("_MaxRange"); maxProperty.intValue = Mathf.Max(maxProperty.intValue, 1); } break; } if (Application.isPlaying && _Target.stateMachine.currentState == _Target.state) { Rect r = EditorGUILayout.BeginVertical(); EditorGUI.ProgressBar(r, (float)_Target.repeatCount / (float)_Target.repeatUntilTransition, _Target.repeatCount.ToString()); GUILayout.Space(16); EditorGUILayout.EndVertical(); } } }
public override void OnInspectorGUI() { serializedObject.Update(); EditorGUILayout.PropertyField(serializedObject.FindProperty("_Slider")); SerializedProperty valueProperty = serializedObject.FindProperty("_Value"); EditorGUILayout.PropertyField(valueProperty); SerializedProperty typeProperty = valueProperty.FindPropertyRelative("_Type"); FlexiblePrimitiveType type = EnumUtility.GetValueFromIndex <FlexiblePrimitiveType>(typeProperty.enumValueIndex); if (type == FlexiblePrimitiveType.Parameter) { EditorGUILayout.PropertyField(serializedObject.FindProperty("_ChangeTimingUpdate")); } serializedObject.ApplyModifiedProperties(); }