public void Initiate(Transform root) {
if (OnPreInitiate != null) OnPreInitiate();
if (root == null) Debug.LogError("Initiating IKSolver with null root Transform.");
this.root = root;
initiated = false;
if (!IsValid(Application.isPlaying)) return;
OnInitiate();
StoreDefaultLocalState();
initiated = true;
firstInitiation = false;
if (OnPostInitiate != null) OnPostInitiate();
}