No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SpriteShapeObjectPlacementEditor.cs 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using UnityEngine;
  2. using UnityEditor;
  3. using UnityEngine.U2D;
  4. [CustomEditor(typeof(SpriteShapeObjectPlacement))]
  5. [CanEditMultipleObjects]
  6. public class SpriteShapeObjectPlacementEditor : Editor
  7. {
  8. SerializedProperty m_SpriteShapeControllerObject;
  9. SerializedProperty m_StartPointObject;
  10. SerializedProperty m_EndPointObject;
  11. SerializedProperty m_SetNormalObject;
  12. SerializedProperty m_RatioObject;
  13. SerializedProperty m_ModeObject;
  14. static readonly GUIContent kStartPoint = new GUIContent(L10n.Tr("Start Point"));
  15. static readonly GUIContent kEndPoint = new GUIContent(L10n.Tr("End Point"));
  16. static readonly GUIContent kRatio = new GUIContent(L10n.Tr("Ratio"));
  17. void OnEnable()
  18. {
  19. m_SpriteShapeControllerObject = serializedObject.FindProperty("m_SpriteShapeController");
  20. m_StartPointObject = serializedObject.FindProperty("m_StartPoint");
  21. m_EndPointObject = serializedObject.FindProperty("m_EndPoint");
  22. m_SetNormalObject = serializedObject.FindProperty("m_SetNormal");
  23. m_RatioObject = serializedObject.FindProperty("m_Ratio");
  24. m_ModeObject = serializedObject.FindProperty("m_Mode");
  25. }
  26. public override void OnInspectorGUI()
  27. {
  28. serializedObject.Update();
  29. EditorGUILayout.PropertyField(m_SpriteShapeControllerObject);
  30. EditorGUILayout.PropertyField(m_SetNormalObject);
  31. EditorGUILayout.PropertyField(m_ModeObject);
  32. if (m_ModeObject.enumValueIndex != 0)
  33. {
  34. EditorGUI.BeginChangeCheck();
  35. var startPoint = EditorGUILayout.DelayedIntField(kStartPoint, m_StartPointObject.intValue);
  36. var endPoint = EditorGUILayout.DelayedIntField(kEndPoint, m_EndPointObject.intValue);
  37. var ratio = EditorGUILayout.Slider(kRatio, m_RatioObject.floatValue, 0, 1.0f);
  38. if (EditorGUI.EndChangeCheck())
  39. {
  40. m_StartPointObject.intValue = startPoint;
  41. m_EndPointObject.intValue = endPoint;
  42. m_RatioObject.floatValue = ratio;
  43. }
  44. }
  45. serializedObject.ApplyModifiedProperties();
  46. }
  47. }