UIEffectReplicaEditor.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using UnityEditor;
  2. namespace Coffee.UIEffects.Editors
  3. {
  4. /// <summary>
  5. /// UIEffect editor.
  6. /// </summary>
  7. [CustomEditor(typeof(UIEffectReplica))]
  8. [CanEditMultipleObjects]
  9. public class UIEffectReplicaEditor : Editor
  10. {
  11. private SerializedProperty _target;
  12. private SerializedProperty _useTargetTransform;
  13. private SerializedProperty _samplingScale;
  14. private SerializedProperty _allowToModifyMeshShape;
  15. private Editor _uiEffectEditor;
  16. private void OnEnable()
  17. {
  18. _target = serializedObject.FindProperty("m_Target");
  19. _useTargetTransform = serializedObject.FindProperty("m_UseTargetTransform");
  20. _samplingScale = serializedObject.FindProperty("m_SamplingScale");
  21. _allowToModifyMeshShape = serializedObject.FindProperty("m_AllowToModifyMeshShape");
  22. }
  23. public override void OnInspectorGUI()
  24. {
  25. serializedObject.Update();
  26. EditorGUILayout.PropertyField(_target);
  27. EditorGUILayout.PropertyField(_useTargetTransform);
  28. EditorGUILayout.PropertyField(_samplingScale);
  29. EditorGUILayout.PropertyField(_allowToModifyMeshShape);
  30. if (_target.objectReferenceValue)
  31. {
  32. EditorGUI.BeginDisabledGroup(true);
  33. CreateCachedEditor(_target.objectReferenceValue, null, ref _uiEffectEditor);
  34. EditorGUILayout.BeginVertical(EditorStyles.helpBox);
  35. (_uiEffectEditor as UIEffect2Editor)?.DrawProperties();
  36. EditorGUILayout.EndVertical();
  37. EditorGUI.EndDisabledGroup();
  38. }
  39. serializedObject.ApplyModifiedProperties();
  40. }
  41. }
  42. }