void StepFirst() { Debug.Log($"{nameof(StepFirst)}: {Last.gameObject}", Last); Last.LookAt(Target); Last.MoveToTouch(Target); _parent = Last; BackingStack.Push(Last); _state = IkState.Second; }
void StepSecond() { Assert.IsTrue(Bones.Any(), "Bones.Any()"); var bone = Bones.Dequeue(); Debug.Log($"{nameof(StepSecond)}: {bone.gameObject} looks {_parent.gameObject}", bone); bone.LookAt(_parent.Start.position); bone.MoveToTouch(_parent.Start.position); _parent = bone; BackingStack.Push(bone); if (!Bones.Any()) { _state = IkState.Last; } }