Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
        }
    }