Files
beyond/Assets/ThirdParty/PlayMaker/Actions/Debug/DebugDrawShape.cs
2024-11-20 15:21:28 +01:00

64 lines
1.9 KiB
C#

using UnityEngine;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory(ActionCategory.Debug)]
[Tooltip("Draw Gizmos in the Scene View.")]
public class DebugDrawShape : FsmStateAction
{
public enum ShapeType { Sphere, Cube, WireSphere, WireCube }
[RequiredField]
[Tooltip("Draw the Gizmo at a GameObject's position.")]
public FsmOwnerDefault gameObject;
[Tooltip("The type of Gizmo to draw:\nSphere, Cube, WireSphere, or WireCube.")]
public ShapeType shape;
[Tooltip("The color to use.")]
public FsmColor color;
[Tooltip("Use this for sphere gizmos")]
public FsmFloat radius;
[Tooltip("Use this for cube gizmos")]
public FsmVector3 size;
public override void Reset()
{
gameObject = null;
shape = ShapeType.Sphere;
color = Color.grey;
radius = 1f;
size = new Vector3(1f, 1f, 1f);
}
public override void OnDrawActionGizmos()
{
var ownerTransform = Fsm.GetOwnerDefaultTarget(gameObject).transform;
if (ownerTransform == null)
return;
Gizmos.color = color.Value;
switch (shape)
{
case ShapeType.Sphere:
Gizmos.DrawSphere(ownerTransform.position, radius.Value);
break;
case ShapeType.WireSphere:
Gizmos.DrawWireSphere(ownerTransform.position, radius.Value);
break;
case ShapeType.Cube:
Gizmos.DrawCube(ownerTransform.position, size.Value);
break;
case ShapeType.WireCube:
Gizmos.DrawWireCube(ownerTransform.position, size.Value);
break;
default:
break;
}
}
}
}