MagicaCapsuleColliderGizmoDrawer.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. /// MagicaCapsuleColliderのギズモ表示
  10. /// </summary>
  11. public class MagicaCapsuleColliderGizmoDrawer
  12. {
  13. [DrawGizmo(GizmoType.Selected | GizmoType.NonSelected | GizmoType.Active)]
  14. static void DrawGizmo(MagicaCapsuleCollider 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(MagicaCapsuleCollider scr, bool selected)
  28. {
  29. Gizmos.color = selected ? GizmoUtility.ColorCollider : GizmoUtility.ColorNonSelectedCollider;
  30. GizmoUtility.DrawWireCapsule(
  31. //scr.transform.position,
  32. scr.transform.TransformPoint(scr.Center),
  33. scr.transform.rotation,
  34. Vector3.one * scr.GetScale(),
  35. scr.GetLocalDir(),
  36. scr.GetLocalUp(),
  37. scr.Length,
  38. scr.StartRadius,
  39. scr.EndRadius
  40. );
  41. }
  42. }
  43. }