using System; using UnityEngine; namespace UniVRM10 { public enum VRM10SpringBoneColliderTypes { Sphere, Capsule, } [Serializable] public class VRM10SpringBoneCollider : MonoBehaviour { public VRM10SpringBoneColliderTypes ColliderType; /// bone local position public Vector3 Offset; [Range(0, 1.0f)] public float Radius; /// bone local position public Vector3 Tail; public static int SelectedGuid; public bool IsSelected => GetInstanceID() == SelectedGuid; public void OnDrawGizmosSelected() { Gizmos.matrix = transform.localToWorldMatrix; switch (ColliderType) { case VRM10SpringBoneColliderTypes.Sphere: Gizmos.color = Color.magenta; Gizmos.DrawWireSphere(Offset, Radius); break; case VRM10SpringBoneColliderTypes.Capsule: Gizmos.color = new Color(1.0f, 0.1f, 0.1f); Gizmos.DrawWireSphere(Offset, Radius); Gizmos.DrawWireSphere(Tail, Radius); Gizmos.DrawLine(Offset, Tail); break; } } } }