private void ClickToWalk() { if (mMotor != null) { InputManagerMediator inputManager = GameFacade.Instance.RetrieveMediator <InputManagerMediator>(); IGuiManager guiManager = GameFacade.Instance.RetrieveMediator <RuntimeGuiManager>(); Vector3 mousePosition = inputManager.MousePosition; if (guiManager.OccludingTopLevels(mousePosition).Count == 0) { //ray cast down to where the user clicked and find what was clicked on... // Construct a ray from the current mouse coordinates Ray rayCastFromCameraIntoWorld = Camera.main.ScreenPointToRay(mousePosition); RaycastHit rayCastHit = new RaycastHit(); if (Physics.Raycast(rayCastFromCameraIntoWorld, out rayCastHit, Mathf.Infinity, 1 << GameFacade.GROUND_LAYER)) { if (Vector3.Dot(rayCastHit.normal, Vector3.up) > 0.95) { mMotor.AnimateCharacterToPoint(rayCastHit.point); } } } } }
private void CheckIfMouseComplete() { IGuiManager guiManager = GameFacade.Instance.RetrieveMediator <RuntimeGuiManager>(); Vector3 mousePosition = mInputManager.MousePosition; if (guiManager.OccludingTopLevels(mousePosition).Count == 0) { //ray cast down to where the user clicked and find what was clicked on... // Construct a ray from the current mouse coordinates Ray rayCastFromCameraIntoWorld = Camera.main.ScreenPointToRay(mousePosition); RaycastHit rayCastHit = new RaycastHit(); if (Physics.Raycast(rayCastFromCameraIntoWorld, out rayCastHit, Mathf.Infinity, 1 << GameFacade.GROUND_LAYER)) { TutorialCompleteWait(); } } }