Quantcast
Channel: Questions in topic: "parenting"
Viewing all articles
Browse latest Browse all 302

setParent method not working

$
0
0
So I have a User Interface panel that when I grab, I am able to move, and then when I release it, I want to parent it to a suit that is parented to my left controller. Right now, when I release, the panel goes way out of position and rotation, basically disappearing. When I look in the hierarchy, the UI is not even parented to the suit. When I debug it, it says the parent is the Suit. I have no idea what is going wrong. { public GameObject Suit; public float resize; public bool grabOn = false; public GameObject grabObject; public bool grabbedUI = false; private void Start() { if (GetComponent() == null || GetComponent() == null) { VRTK_Logger.Error(VRTK_Logger.GetCommonMessage(VRTK_Logger.CommonMessageKeys.REQUIRED_COMPONENT_MISSING_FROM_GAMEOBJECT, "VRTK_ControllerInteract_ListenerExample", "VRTK_InteractTouch and VRTK_InteractGrab", "the Controller Alias")); return; } //Setup controller event listeners GetComponent().ControllerTouchInteractableObject += new ObjectInteractEventHandler(DoInteractTouch); GetComponent().ControllerUntouchInteractableObject += new ObjectInteractEventHandler(DoInteractUntouch); GetComponent().ControllerGrabInteractableObject += new ObjectInteractEventHandler(DoInteractGrab); GetComponent ().ControllerStartUngrabInteractableObject += new ObjectInteractEventHandler (DoInteractUngrab); } private void DebugLogger(uint index, string action, GameObject target) { VRTK_Logger.Info("Controller on index '" + index + "' is " + action + " an object named " + target.name); } private void DoInteractTouch(object sender, ObjectInteractEventArgs e) { if (e.target) { // DebugLogger(VRTK_ControllerReference.GetRealIndex(e.controllerReference), "TOUCHING", e.target); } } private void DoInteractUntouch(object sender, ObjectInteractEventArgs e) { if (e.target) { //DebugLogger(VRTK_ControllerReference.GetRealIndex(e.controllerReference), "NO LONGER TOUCHING", e.target); } } private void DoInteractGrab(object sender, ObjectInteractEventArgs e) { if (e.target) { DebugLogger(VRTK_ControllerReference.GetRealIndex(e.controllerReference), "GRABBING", e.target); //identifies the grabbed object as the gameobject grabObject grabObject = e.target; //must be grabbing UI to size if (grabbedUI == true) { //must remove anyparenting in order to allow resizing grabObject.transform.parent = null; //sets grab on condition to true grabOn = true; } } } public void DoInteractUngrab(object sender, ObjectInteractEventArgs e) { if (e.target) { print (grabObject.transform); DebugLogger(VRTK_ControllerReference.GetRealIndex(e.controllerReference), "NO LONGER GRABBING", e.target); grabOn = false; print (grabOn); //parents grabObject to Suit transform grabObject.transform.SetParent(Suit.transform); } } //when touchpad plus is touched public void onButtonUpPress(){ //object must be grabbed if (grabOn == true) { resize = 1.1f; //resize based on public float resize based on thumb pad placement grabObject.transform.localScale += new Vector3 (resize * 0.0001f, resize * 0.0001f, resize * 0.0001f); } } //when touchpad minus is touched public void onButtonDownPress(){ //object must be grabbed if (grabOn == true) { resize = -1.1f; //resize based on public float resize based on thumb pad placement grabObject.transform.localScale += new Vector3 (resize * 0.0001f, resize * 0.0001f, resize * 0.0001f); } } //determine if grabbing UI void OnTriggerEnter(Collider coll){ if (coll.gameObject.tag == "UI"){ grabbedUI = true; } } } }

Viewing all articles
Browse latest Browse all 302

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>