void OnEnable()
    {
        ivrRift = (IVR_Rift) target;
        ivr = ivrRift.GetComponent<InstantVR>();

        if (ivr != null) {
            riftHead = ivr.headTarget.GetComponent<IVR_RiftHead>();
            if (riftHead == null) {
                riftHead = ivr.headTarget.gameObject.AddComponent<IVR_RiftHead>();
                riftHead.extension = ivrRift;
            }

            IVR_Extension[] extensions = ivr.GetComponents<IVR_Extension>();
            if (ivrRift.priority == -1)
                ivrRift.priority = extensions.Length - 1;
            for (int i = 0; i < extensions.Length; i++) {
                if (ivrRift == extensions[i]) {
                    while (i < ivrRift.priority) {
                        MoveUp(riftHead);
                        ivrRift.priority--;
                        //Debug.Log ("Rift Move up to : " + i + " now: " + ivrRift.priority);
                    }
                    while (i > ivrRift.priority) {
                        MoveDown(riftHead);
                        ivrRift.priority++;
                        //Debug.Log ("Rift Move down to : " + i + " now: " + ivrRift.priority);
                    }
                }
            }
        }
    }
 void OnDestroy()
 {
     if (ivrRift == null && ivr != null) {
         riftHead = ivr.headTarget.GetComponent<IVR_RiftHead>();
         if (riftHead != null)
             DestroyImmediate(riftHead, true);
     }
 }