public Pathfind SetDestination(Vector3 worldSpacePos) { var destination = tilemapManager.GetTileNode(tilemapManager.WorldToCell(worldSpacePos)); pathfind.pathStatus = 0; StartCoroutine(WaitForPathThenQueueMoves(destination)); return(pathfind); }
// Update is called once per frame void Update() { if (_agent.status == AgentStatus.Dead) { return; } if (!handleInput.Value) { return; } if (!gfm.playerCanMove.Value) { return; } //keyboard Input if (UnityEngine.Input.GetKeyDown(KeyCode.RightArrow)) { inputStack.Enqueue(Vector2Int.right); } else if (UnityEngine.Input.GetKeyDown(KeyCode.LeftArrow)) { inputStack.Enqueue(Vector2Int.left); } else if (UnityEngine.Input.GetKeyDown(KeyCode.UpArrow)) { inputStack.Enqueue(Vector2Int.up); } else if (UnityEngine.Input.GetKeyDown(KeyCode.DownArrow)) { inputStack.Enqueue(Vector2Int.down); } // if (UnityEngine.Input.GetKeyDown(KeyCode.Space)) // { // _tilemapManager.Sound(_agent.position, 3); // } //pathfinding test. if (UnityEngine.Input.GetMouseButtonDown(1)) { var clickPos = _tilemapManager.WorldToCell(Camera.main.ScreenToWorldPoint(UnityEngine.Input.mousePosition)); var clickNode = _tilemapManager.GetTileNode(clickPos); if (clickNode == null) { return; } StartCoroutine(WaitAndQueuePath(clickNode.position)); } /// if (UnityEngine.Input.GetMouseButtonDown(0)) { //if input for movement... var clickPos = _tilemapManager.WorldToCell(Camera.main.ScreenToWorldPoint(UnityEngine.Input.mousePosition)); if (_agent.position == clickPos) { return; } //if we clicked ON the player. This how we show menu? if (_agent.position.x == clickPos.x) { inputStack.Enqueue(_agent.position.y < clickPos.y ? Vector2Int.up : Vector2Int.down); } else if (_agent.position.y == clickPos.y) { inputStack.Enqueue(_agent.position.x < clickPos.x ? Vector2Int.right : Vector2Int.left); } } //end mouse movement /// if (!_activeTurn.blockPlayerMovement && inputStack.Count > 0) { _activeTurn = _agent.Move(inputStack.Dequeue()); if (_activeTurn.turnTaken) { _activeTurn.blockPlayerMovement = true; } } }