您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

69 行
1.9 KiB

using System;
using System.Collections.Generic;
using UnityEngine;
namespace UniVRM10
{
/// <summary>
/// SpringBone の情報をすべて保持する
///
/// * SpringBoneCollider
/// * SpringBoneJoint
///
/// は、個別の MonoBehaviour として設定する
///
/// </summary>
[Serializable]
public sealed class Vrm10InstanceSpringBone
{
[SerializeField]
public List<VRM10SpringBoneColliderGroup> ColliderGroups = new List<VRM10SpringBoneColliderGroup>();
[Serializable]
public class Spring
{
[SerializeField]
public string Name;
public string GUIName(int i) => $"{i:00}:{Name}";
[SerializeField]
public List<VRM10SpringBoneColliderGroup> ColliderGroups = new List<VRM10SpringBoneColliderGroup>();
[SerializeField]
public List<VRM10SpringBoneJoint> Joints = new List<VRM10SpringBoneJoint>();
[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<Spring> Springs = new List<Spring>();
}
}