/// <summary> /// Automatically build the chain /// </summary> /// <param name="anim"></param> public void AutoBuild(Animator anim) { if (anim == null) { Debug.LogError("The Animator component passed is NULL"); return; } RigReader rigReader = new RigReader(anim); switch (LegType) { case HumanLegs.RightLeg: var tempR = rigReader.BuildChain(LegType); Chain.Joints = tempR.Joints; break; case HumanLegs.LeftLeg: var tempL = rigReader.BuildChain(LegType); Chain.Joints = tempL.Joints; break; } Init(); }
/// <summary> /// Detect and initiate the rig /// </summary> public void DetectRig() { if (!animator) { animator = GetComponent <Animator>(); } rigReader = new RigReader(animator); }
/// <summary> /// Automatically Initialise the references /// </summary> private void AutomaticInit() { if (SourceAnimator.isHuman == false) { Debug.LogError(this + " works only for humanoid characters"); enabled = false; return; } RigReader rigReader = new RigReader(SourceAnimator); if (Root == null) { Root = rigReader.Root.joint; } //auto build the chains Right.AutoBuild(SourceAnimator); Left.AutoBuild(SourceAnimator); }