using System.Collections.Generic; using UnityEngine; using UnityEngine.Animations.Rigging; [AddComponentMenu("")] public class MultiReferentialConstraintReverseAdaptor : RigAdaptorAbs { [SerializeField] private int m_Driver; [SerializeField] private List m_SourceObjects; public override void FindRigTargets() { var constraint = GetComponent(); constraint.Reset(); constraint.weight = weight; constraint.data.driver = m_Driver; constraint.data.sourceObjects = new List(); foreach(var sourceObject in m_SourceObjects) { constraint.data.sourceObjects.Add(targetRoot.FindInAllChildren(sourceObject)); } } public override void ReadRigData() { var constraint = GetComponent(); weight = constraint.weight; m_Driver = constraint.data.driver; m_SourceObjects = new List(); foreach (var sourceObject in constraint.data.sourceObjects) { m_SourceObjects.Add(sourceObject?.name); } } }