赞
踩
public GameObject leftController; public GameObject rightController; public void OnOptionSelected(InputAction.CallbackContext context) { if (InteractionController.Instance.currentModeName != "SideBySideMode") { return; } if (context.action.name == "SelectOption") { if (context.performed) { GameObject controller = rightController; Ray ray = new Ray(controller.transform.position, controller.transform.forward); RaycastHit hit; int targetLayerMask = 1 << LayerMask.NameToLayer("SideBySideClickable"); if (Physics.Raycast(ray, out hit, Mathf.Infinity, targetLayerMask)) { Debug.DrawRay(ray.origin, ray.direction * 1000, Color.red, 10f); if (hit.collider != null) { //logic } } else { Debug.DrawRay(ray.origin, ray.direction * 1000, Color.red, 10f) Debug.Log("No hit in side by side mode"); } } } }
上面的代码得到的raycast是下图红线,而实际上我的controllor指着的是绿线的方向。我凌乱了,怎么得到的raycast不一样。
找到的原因是我的hirarchy view里面,应该把RightController和LeftController拖进去,而我一开始拖动的是XRControllerRight和XRControllerLeft,因此会有上面的问题。
更深层的原因就是因为XRControllerRight和RightController的transform不一样。如果后面再出现这种问题,就需要检查一下设备有没有找对。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。