Parsowanie odpowiedzi serwera gry

0

Zaczelem sie uczyc socketow i zrobilem serwer(c#) i klient(unity,c#). Nie rozumiem dlaczego informacja zwrotna od serwera jest pomijana w instrukcji switch i if.

private void HandleResponse(string response)
    {
        string[] command = response.Split(' ');
        if(response== "Invalid login or password")
        {
            Debug.Log(" OK!");
        }
        switch (command[0])
        {
            case "Success":
                Debug.Log("Zalogowano");
                break;
            case "Invalid login or password":
                Debug.Log("Invalid login or password");
                break;
            case "position":
                float x = float.Parse(command[1]);
                float y = float.Parse(command[2]);
                Vector3 position = new Vector3(x, y, 0);
                transform.position = position;
                Debug.Log("Received position: " + position);
                UpdatePlayerPositions(response);  // <- 
                break;
            default:
                Debug.Log("Cos nie tak Linia 75: " + response);
                break;
        }
    }

Wpisalem zly login i haslo powinno mi zadziałac case "Invalid login or password": lub if ktorego dodalem by tam tez sprawdzic. Default mi zwraca:Cos nie tak Linia 75: Invalid login or password. Skoro w response mam tekst Invalid login or password to powinien zadzialac if albo z case ... a dostaje default. Moze mi ktos wytlumaczyc to albo gdzies jest blad?

0

Jak splitujesz stringa po spacji i do switcha dajesz command[0] to jest tam pierwsze słowo, więc na pewno case "Invalid login or password" będzie pomijanie. Jak wygląda response?

0

Dostaje response : Cos nie tak Linia 75: Invalid login or password.

1

To logujesz w konsoli z Default case, a w parametrze response jest Invalid login or password. Jak splitujesz, to w switchu sprawdzasz samo słowo Invalid, dlatego wykonuje się default.

0

Nie pomyslalem. Ale dobra to czemu mi if'a pominelo?

2

Chyba w response jest kropka, a w ifie nie, co? XD

0

Dobra temat do zamkniecia xD

1 użytkowników online, w tym zalogowanych: 0, gości: 1