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 CheckIfClickedInWindow() { InputManagerMediator inputManager = GameFacade.Instance.RetrieveMediator <InputManagerMediator>(); Vector3 mousePosition = inputManager.MousePosition; if (IsMouseOverOccludingElement(mMainMenuWindow, mousePosition) || IsMouseOverOccludingElement(mIconMenuWindow, mousePosition) || IsMouseOverOccludingElement(mTextMenuWindow, mousePosition)) { return; } else { GameFacade.Instance.RetrieveMediator <SchedulerMediator>().Scheduler.StartCoroutine(ClosedFromMouseUp()); } }
private void SetupMovementInput() { InputManagerMediator inputManager = GameFacade.Instance.RetrieveMediator <InputManagerMediator>(); LocalAvatarEntity localAvatar = GameFacade.Instance.RetrieveMediator <AvatarMediator>().LocalAvatarEntity; mMotor = new Motor(localAvatar); mInputReceipts.Add(inputManager.RegisterForButtonDown(KeyCode.Mouse0, ClickToWalk)); mInputReceipts.Add(inputManager.RegisterForButtonDown(KeyCode.LeftArrow, MoveLeft)); mInputReceipts.Add(inputManager.RegisterForButtonUp(KeyCode.LeftArrow, StopLeft)); mInputReceipts.Add(inputManager.RegisterForButtonDown(KeyCode.RightArrow, MoveRight)); mInputReceipts.Add(inputManager.RegisterForButtonUp(KeyCode.RightArrow, StopRight)); mInputReceipts.Add(inputManager.RegisterForButtonDown(KeyCode.UpArrow, MoveUp)); mInputReceipts.Add(inputManager.RegisterForButtonUp(KeyCode.UpArrow, StopUp)); mInputReceipts.Add(inputManager.RegisterForButtonDown(KeyCode.DownArrow, MoveDown)); mInputReceipts.Add(inputManager.RegisterForButtonUp(KeyCode.DownArrow, StopDown)); }