private void OnDrawGizmos() { if (executeInEditMode && !CanSleepAt(position - springPosition)) { EditModePlayback.Register(this); } }
protected override void OnInterpolate(float value) { position = value; #if UNITY_EDITOR if (!Application.isPlaying && executeInEditMode) { EditModePlayback.Register(this); } #endif }
protected override void OnValidate() { base.OnValidate(); if (executeInEditMode) { EditModePlayback.Register(this); } else { EditModePlayback.Unregister(this); } onPositionChanged.OnValidate(); onPositionChanged.Invoke(springPosition); }
public override void OnInspectorGUI() { serializedObject.Update(); EditorGUILayout.Space(); DrawPropertiesExcluding(serializedObject, "m_Script", "onTween"); var tweener = target as InOut; EditorGUILayout.Space(); GUILayout.BeginHorizontal(); if (GUILayout.Button("In", EditorStyles.miniButtonLeft)) { if (Application.isPlaying) { tweener.In(); } else { serializedObject.FindProperty("previewDirection").enumValueIndex = EnumValueIndex(Direction.In); EditModePlayback.Register(tweener); } } if (GUILayout.Button("Out", EditorStyles.miniButtonRight)) { if (Application.isPlaying) { tweener.Out(); } else { serializedObject.FindProperty("previewDirection").enumValueIndex = EnumValueIndex(Direction.Out); EditModePlayback.Register(tweener); } } if (GUILayout.Button("Stop", EditorStyles.miniButton)) { if (Application.isPlaying) { tweener.Stop(); } else { serializedObject.FindProperty("previewDirection").enumValueIndex = EnumValueIndex(Direction.None); } } using (new EditorGUI.DisabledScope(true)) { EditorGUILayout.PropertyField(serializedObject.FindProperty("previewDirection"), GUIContent.none); } GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.PropertyField(serializedObject.FindProperty("onTween")); serializedObject.ApplyModifiedProperties(); }