private void Update() { if (Input.GetKeyDown(KeyCode.Space)) { paused = !paused; } if (character == null || !character.isPlayer) { character = ObjectManager.playerCharacter; } else { if (character.IsMoving) { turnTimer -= Time.deltaTime; if (turnTimer <= 0 && !paused) { ObjectManager.TakeTurn(); turnTimer = TurnDuration; } } else { turnTimer = 0; bool leftClick = Input.GetMouseButtonDown(0); bool rightClick = Input.GetMouseButtonDown(1); if (leftClick || rightClick) { if (interactionsMenu != null && !RectTransformUtility.RectangleContainsScreenPoint(interactionsMenu.GetComponent <RectTransform>(), Input.mousePosition)) { ClearInteractionMenu(); } else if (!EventSystem.current.IsPointerOverGameObject()) { RaycastHit[] hits = Physics.RaycastAll(Camera.ScreenPointToRay(Input.mousePosition)) .Where(h => { EntityObject entityObject = h.transform.GetComponent <EntityObject>(); return(entityObject != null && entityObject.Entity.seen); }).ToArray(); if (hits.Length > 0) { RaycastHit hit = hits[0]; Entity entity = hit.transform.GetComponent <EntityObject>().Entity; Interactable interactable = entity as Interactable; if (interactable == null) { if (leftClick) { character.RequestPathToPosition(NodeGrid.GetCoordFromWorldPos(hit.point + 0.05f * hit.normal)); } } else { if (rightClick) { DisplayInteractable(interactable); } else { interactable.MoveTo(character); } } } } } if (Input.GetKeyDown(KeyCode.Keypad5)) { character.StopPath(); ObjectManager.TakeTurn(); } if (Input.GetKeyDown(KeyCode.Keypad1)) { MoveTowards(Coord.Back + Coord.Left); } if (Input.GetKeyDown(KeyCode.Keypad2) || Input.GetKeyDown(KeyCode.DownArrow)) { MoveTowards(Coord.Back); } if (Input.GetKeyDown(KeyCode.Keypad3)) { MoveTowards(Coord.Back + Coord.Right); } if (Input.GetKeyDown(KeyCode.Keypad4) || Input.GetKeyDown(KeyCode.LeftArrow)) { MoveTowards(Coord.Left); } if (Input.GetKeyDown(KeyCode.Keypad6) || Input.GetKeyDown(KeyCode.RightArrow)) { MoveTowards(Coord.Right); } if (Input.GetKeyDown(KeyCode.Keypad7)) { MoveTowards(Coord.Forward + Coord.Left); } if (Input.GetKeyDown(KeyCode.Keypad8) || Input.GetKeyDown(KeyCode.UpArrow)) { MoveTowards(Coord.Forward); } if (Input.GetKeyDown(KeyCode.Keypad9)) { MoveTowards(Coord.Forward + Coord.Right); } } } }