public void HandleInput() { FocusableObject currentFocusableObject = FocusableObject.CurrentObject; if (Input.GetButtonDown("Submit")) { Debug.Log("Submit"); currentFocusableObject.OnSubmit(); } if (Input.GetButtonDown("Cancel")) { Debug.Log("Cancel"); currentFocusableObject.OnCancel(); } if (Input.GetButtonDown("Fire3")) { Debug.Log("Fire3"); currentFocusableObject.OnInformation(); } float horizontal = Input.GetAxis("Horizontal"); float vertical = Input.GetAxis("Vertical"); if (horizontal != 0f || vertical != 0f) { Debug.Log("Arrow"); FocusableObject.CurrentObject.OnArrow(horizontal, vertical); System.Threading.Thread.Sleep(50); } }
private void CheckEyeFocus() { //以Camera为原点生成视线方向的射线判定 OVRCameraController cameraController = this.GetComponent<OVRCameraController>(); Vector3 headPosition = Vector3.zero; cameraController.GetCameraPosition(ref headPosition); Vector3 eyePosition = Vector3.zero; cameraController.GetEyeCenterPosition(ref eyePosition); eyePosition += headPosition; Vector3 sightOrientation = Vector3.zero; cameraController.GetCameraOrientationEulerAngles(ref sightOrientation); RaycastHit focus; Physics.Raycast(eyePosition, Quaternion.Euler(sightOrientation) * Vector3.forward, out focus, eyeSightDistance); Transform focusTransform = focus.transform; FocusableObject newFocus = focusTransform != null ? focusTransform.GetComponent<FocusableObject>() : null; //如果NewFocus不是CurrentFocus,则更新CurrentFocus if (currentFocus != newFocus) { if (currentFocus != null) currentFocus.IsFocused = false; currentFocus = newFocus; if (currentFocus != null) currentFocus.IsFocused = true; } }
void Awake() { inst = gameObject.GetComponent<FocusableObject>(); }
void Awake() { drop = gameObject.GetComponent<Drop>(); inst = gameObject.GetComponent<FocusableObject>(); }
public IEnumerator Cancel(FocusableObject focusableObject) { focusableObject.OnCancel(); yield return(null); }
public IEnumerator Submit(FocusableObject focusableObject) { focusableObject.OnSubmit(); yield return(null); }
public IEnumerator LeftArrow(FocusableObject focusableObject) { focusableObject.OnArrow(-1, 0); yield return(null); }
public IEnumerator UpArrow(FocusableObject focusableObject) { focusableObject.OnArrow(0, 1); yield return(null); }
public IEnumerator Information(FocusableObject focusableObject) { focusableObject.OnInformation(); yield return(null); }