private void AttachElementToController(MotionControllerInfo newController) { #if UNITY_WSA && UNITY_2017_2_OR_NEWER // Check handedness if (!IsAttached && newController.Handedness == handedness) { // Get specific element of the controller if (!newController.TryGetElement(element, out elementTransform)) { Debug.LogError("Unable to find element of type " + element + " under controller " + newController.ControllerParent.name + "; not attaching."); return; } controller = newController; SetChildrenActive(true); // Parent ourselves under the element and set our offsets transform.parent = elementTransform; transform.localPosition = positionOffset; transform.localEulerAngles = rotationOffset; if (setScaleOnAttach) { transform.localScale = scale; } // Announce that we're attached OnAttachToController(); IsAttached = true; } #endif }
protected virtual void AddControllerTransform(MotionControllerInfo newController) { #if UNITY_WSA && UNITY_2017_2_OR_NEWER if (newController.Handedness == handedness) { if (!newController.TryGetElement(element, out elementTransform)) { Debug.LogError("Unable to find element of type " + element + " under controller " + newController.ControllerParent.name + "; not attaching."); return; } ControllerInfo = newController; // update elementTransform for consumption ControllerInfo.TryGetElement(element, out elementTransform); ElementTransform = elementTransform; } #endif }