MagicaPlaneColliderGizmoDrawer.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Magica Cloth.
  2. // Copyright (c) MagicaSoft, 2020-2022.
  3. // https://magicasoft.jp
  4. using UnityEditor;
  5. using UnityEngine;
  6. namespace MagicaCloth
  7. {
  8. /// <summary>
  9. /// MagicaPlaneColliderのギズモ表示
  10. /// </summary>
  11. public class MagicaPlaneColliderGizmoDrawer
  12. {
  13. [DrawGizmo(GizmoType.Selected | GizmoType.NonSelected | GizmoType.Active)]
  14. static void DrawGizmo(MagicaPlaneCollider scr, GizmoType gizmoType)
  15. {
  16. bool selected = (gizmoType & GizmoType.Selected) != 0;
  17. if (selected == false)
  18. {
  19. if (ClothMonitorMenu.Monitor == null)
  20. return;
  21. if (ClothMonitorMenu.Monitor.UI.AlwaysClothShow == false || ClothMonitorMenu.Monitor.UI.DrawClothCollider == false)
  22. return;
  23. selected = true;
  24. }
  25. DrawGizmo(scr, selected);
  26. }
  27. public static void DrawGizmo(MagicaPlaneCollider scr, bool selected)
  28. {
  29. Gizmos.matrix = scr.transform.localToWorldMatrix;
  30. var cen = new Vector3(0.0f, scr.Center.y, 0.0f);
  31. Gizmos.color = selected ? GizmoUtility.ColorCollider : GizmoUtility.ColorNonSelectedCollider;
  32. Vector3 size = new Vector3(1.0f, 0.0f, 1.0f);
  33. Gizmos.DrawWireCube(cen, size);
  34. Gizmos.DrawLine(cen, cen + Vector3.up * 0.1f);
  35. Gizmos.matrix = Matrix4x4.identity;
  36. }
  37. }
  38. }