47 lines
1.4 KiB
C#

using UnityEngine;
namespace KindRetargeting
{
/// <summary>
/// IK 타겟 위치를 시각적으로 표시하기 위한 Gizmo 클래스
/// </summary>
public class IKTargetGizmo : MonoBehaviour
{
[Header("Gizmo 설정")]
public float gizmoSize = 0.05f;
public Color gizmoColor = Color.yellow;
private void OnDrawGizmos()
{
// 기존 매트릭스 저장
Matrix4x4 originalMatrix = Gizmos.matrix;
Color originalColor = Gizmos.color;
// 현재 오브젝트의 위치와 회전 적용
Gizmos.matrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one);
// 기본 구체 그리기
Gizmos.color = gizmoColor;
Gizmos.DrawWireSphere(Vector3.zero, gizmoSize * 0.5f);
float axisLength = gizmoSize * 1.5f;
// X축 (Red)
Gizmos.color = Color.red;
Gizmos.DrawRay(Vector3.zero, Vector3.right * axisLength);
// Y축 (Green)
Gizmos.color = Color.green;
Gizmos.DrawRay(Vector3.zero, Vector3.up * axisLength);
// Z축 (Blue)
Gizmos.color = Color.blue;
Gizmos.DrawRay(Vector3.zero, Vector3.forward * axisLength);
// 원래 상태로 복원
Gizmos.matrix = originalMatrix;
Gizmos.color = originalColor;
}
}
}