using System; using System.Collections.Generic; using UnityEngine; namespace UniVRM10 { /// /// SpringBone の情報をすべて保持する /// /// * SpringBoneCollider /// * SpringBoneJoint /// /// は、個別の MonoBehaviour として設定する /// /// [Serializable] public sealed class Vrm10InstanceSpringBone { [SerializeField] public List ColliderGroups = new List(); [Serializable] public class Spring { [SerializeField] public string Name; public string GUIName(int i) => $"{i:00}:{Name}"; [SerializeField] public List ColliderGroups = new List(); [SerializeField] public List Joints = new List(); [SerializeField] public Transform Center; public Spring(string name) { Name = name; } public IEnumerable<(VRM10SpringBoneJoint, Transform)> EnumHeadTail() { for (int i = 0; i < Joints.Count; ++i) { var head = Joints[i]; if (head == null) { continue; } for (int j = i + 1; j < Joints.Count; ++j) { var tail = Joints[j]; if (tail != null) { yield return (head, tail.transform); break; } } } } } [SerializeField] public List Springs = new List(); } }