您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
49 行
1.3 KiB
49 行
1.3 KiB
using System;
|
|
using UnityEngine;
|
|
|
|
namespace UniVRM10
|
|
{
|
|
public enum VRM10SpringBoneColliderTypes
|
|
{
|
|
Sphere,
|
|
Capsule,
|
|
}
|
|
|
|
[Serializable]
|
|
public class VRM10SpringBoneCollider : MonoBehaviour
|
|
{
|
|
public VRM10SpringBoneColliderTypes ColliderType;
|
|
|
|
/// <summary>bone local position</summary>
|
|
public Vector3 Offset;
|
|
|
|
[Range(0, 1.0f)]
|
|
public float Radius;
|
|
|
|
/// <summary>bone local position</summary>
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|