Пример #1
0
    void MovePartyLeader(PartyMember partyLeader, Grid grid)
    {
        Vector3 direction = Vector3.zero;
        CharacterDirection2D characterDirection = partyLeader.characterDirection;

        if (Input.GetAxisRaw("Horizontal") != 0)
        {
            direction = Vector3.right * Input.GetAxisRaw("Horizontal");
            characterDirection.SetFront(new Vector2Int((int)direction.x, (int)direction.y));

            if (!partyLeader.WillCollide(Vector2.right * Input.GetAxisRaw("Horizontal"), rayDistance))
            {
                partyLeader.SetNextTile(partyLeader.currentTile + grid.WorldToCell(direction));
            }
        }
        else if (Input.GetAxisRaw("Vertical") != 0)
        {
            direction = Vector3.forward * Input.GetAxisRaw("Vertical");
            characterDirection.SetFront(new Vector2Int((int)direction.x, (int)direction.y));

            if (!partyLeader.WillCollide(Vector3.up * Input.GetAxisRaw("Vertical"), rayDistance))
            {
                partyLeader.SetNextTile(partyLeader.currentTile + grid.WorldToCell(direction));
            }
        }
    }