void OnDestroy() { if (ivranimator == null && ivr != null) { animatorHead = ivr.headTarget.GetComponent<IVR_AnimatorHead>(); if (animatorHead != null) DestroyImmediate(animatorHead, true); animatorLeftHand = ivr.leftHandTarget.GetComponent<IVR_AnimatorHand>(); if (animatorLeftHand != null) DestroyImmediate(animatorLeftHand, true); animatorRightHand = ivr.rightHandTarget.GetComponent<IVR_AnimatorHand>(); if (animatorRightHand != null) DestroyImmediate(animatorRightHand, true); animatorHip = ivr.hipTarget.GetComponent<IVR_AnimatorHip>(); if (animatorHip != null) DestroyImmediate(animatorHip, true); animatorLeftFoot = ivr.leftFootTarget.GetComponent<IVR_AnimatorFoot>(); if (animatorLeftFoot != null) DestroyImmediate(animatorLeftFoot, true); animatorRightFoot = ivr.rightFootTarget.GetComponent<IVR_AnimatorFoot>(); if (animatorRightFoot != null) DestroyImmediate(animatorRightFoot, true); } }
public override void StartController(InstantVR ivr) { base.StartController(ivr); present = true; animatorHip = ivr.hipTarget.GetComponent<IVR_AnimatorHip>(); lastHipPosition = ivr.hipTarget.position; animatorHipStartPosition = ivr.hipTarget.position; hip2hand = Quaternion.Inverse(ivr.transform.rotation) * (ivr.hipTarget.position - this.transform.position); if (this.transform == ivr.leftHandTarget) { foot2hand = Quaternion.Inverse(ivr.transform.rotation) * (ivr.leftHandTarget.position - ivr.rightFootTarget.position); } else { foot2hand = Quaternion.Inverse(ivr.transform.rotation) * (ivr.rightHandTarget.position - ivr.leftFootTarget.position); } }
void OnEnable() { ivranimator = (IVR_Animator) target; ivr = ivranimator.GetComponent<InstantVR>(); if (ivr != null) { animatorHead = ivr.headTarget.GetComponent<IVR_AnimatorHead>(); if (animatorHead == null) { animatorHead = ivr.headTarget.gameObject.AddComponent<IVR_AnimatorHead>(); animatorHead.extension = ivranimator; } animatorLeftHand = ivr.leftHandTarget.GetComponent<IVR_AnimatorHand>(); if (animatorLeftHand == null) { animatorLeftHand = ivr.leftHandTarget.gameObject.AddComponent<IVR_AnimatorHand>(); animatorLeftHand.extension = ivranimator; } animatorRightHand = ivr.rightHandTarget.GetComponent<IVR_AnimatorHand>(); if (animatorRightHand == null) { animatorRightHand = ivr.rightHandTarget.gameObject.AddComponent<IVR_AnimatorHand>(); animatorRightHand.extension = ivranimator; } animatorHip = ivr.hipTarget.GetComponent<IVR_AnimatorHip>(); if (animatorHip == null) { animatorHip = ivr.hipTarget.gameObject.AddComponent<IVR_AnimatorHip>(); animatorHip.extension = ivranimator; } animatorLeftFoot = ivr.leftFootTarget.GetComponent<IVR_AnimatorFoot>(); if (animatorLeftFoot== null) { animatorLeftFoot = ivr.leftFootTarget.gameObject.AddComponent<IVR_AnimatorFoot>(); animatorLeftFoot.extension = ivranimator; } animatorRightFoot = ivr.rightFootTarget.GetComponent<IVR_AnimatorFoot>(); if (animatorRightFoot == null) { animatorRightFoot = ivr.rightFootTarget.gameObject.AddComponent<IVR_AnimatorFoot>(); animatorRightFoot.extension = ivranimator; } IVR_Extension[] extensions = ivr.GetComponents<IVR_Extension>(); if (ivranimator.priority == -1) ivranimator.priority = extensions.Length - 1; for (int i = 0; i < extensions.Length; i++) { if (ivranimator == extensions[i]) { while (i < ivranimator.priority) { MoveUp(animatorHead); MoveUp(animatorLeftHand); MoveUp(animatorRightHand); MoveUp(animatorHip); MoveUp(animatorLeftFoot); MoveUp(animatorRightFoot); ivranimator.priority--; //Debug.Log ("Animator Move up to : " + i + " now: " + ivranimator.priority); } while (i > ivranimator.priority) { MoveDown(animatorHead); MoveDown(animatorLeftHand); MoveDown(animatorRightHand); MoveDown(animatorHip); MoveDown(animatorLeftFoot); MoveDown(animatorRightFoot); ivranimator.priority++; //Debug.Log ("Animator Move down to : " + i + " now: " + ivranimator.priority); } } } } }