/// <summary> /// The IsValidInteractableController method is used to check to see if a controller is allowed to perform an interaction with this object as sometimes controllers are prohibited from grabbing or using an object depedning on the use case. /// </summary> /// <param name="actualController">The game object of the controller that is being checked.</param> /// <param name="controllerCheck">The value of which controller is allowed to interact with this object.</param> /// <returns>Is true if the interacting controller is allowed to grab the object.</returns> public bool IsValidInteractableController(GameObject actualController, AllowedController controllerCheck) { if (controllerCheck == AllowedController.Both) { return(true); } var controllerHand = VRTK_DeviceFinder.GetControllerHandType(controllerCheck.ToString().Replace("_Only", "")); return(VRTK_DeviceFinder.IsControllerOfHand(actualController, controllerHand)); }
private Transform GetSnapHandle(VRTK_InteractableObject objectScript) { if (objectScript.rightSnapHandle == null && objectScript.leftSnapHandle != null) { objectScript.rightSnapHandle = objectScript.leftSnapHandle; } if (objectScript.leftSnapHandle == null && objectScript.rightSnapHandle != null) { objectScript.leftSnapHandle = objectScript.rightSnapHandle; } if (VRTK_DeviceFinder.IsControllerOfHand(gameObject, VRTK_DeviceFinder.ControllerHand.Right)) { return(objectScript.rightSnapHandle); } if (VRTK_DeviceFinder.IsControllerOfHand(gameObject, VRTK_DeviceFinder.ControllerHand.Left)) { return(objectScript.leftSnapHandle); } return(null); }