public void MoveEnemy(Layer2D layer) { int xDir = 0; int yDir = 0; if (Mathf.Abs(target.position.x - transform.position.x) < float.Epsilon) { yDir = target.position.y > transform.position.y ? 1 : -1; } else { xDir = target.position.x > transform.position.x ? 1 : -1; } var dir = ChipUtil.CreateDirection(new Vector2Int(xDir, yDir)); AttemptMove(layer, dir); }
private void Update() { // 自分のターンじゃないとき処理しない if (!InGameManager.GetInstance().playersTurn) { return; } int horizontal = 0; // 水平移動方向 int vertical = 0; // 垂直移動方向 // 水平移動方向設定 horizontal = (int)(Input.GetAxisRaw("Horizontal")); // 垂直移動方向取得 vertical = (int)(Input.GetAxisRaw("Vertical")); // 移動があるか確認 if (horizontal != 0 || vertical != 0) { var dir = ChipUtil.CreateDirection(new Vector2Int(horizontal, vertical)); var list = InGameManager.GetInstance().LayerList; AttemptMove(list[(int)LayerType.Under], dir); } }