저번에는 PlayFab의 Player 기능을 이용하여 로그인 서버로 활용하여 로그인 및 회원가입을 했다.

(http://icechou.tistory.com/313?category=296908)


거기서 아이디 뿐만 아니라 닉네임을 추가로 설정할수는 없을까? 해서 찾아보니 

이렇게 유저정보에 Display name 이라는게 있길래 써보기로 했다.




사용법은 로그인 회원가입때와 동일.

1
2
3
4
5
6
7
8
9
private void OnLoginSuccess(LoginResult result)
{
    Debug.Log("로그인 성공");
    PlayerPrefs.SetString("Username", username);
 
    // 계정정보 받아옴
    var request = new GetAccountInfoRequest { Username = username };
    PlayFabClientAPI.GetAccountInfo(request, GetAccountSuccess, GetAccountFailure);
}
cs

로그인을 성공하면 성공콜백함수에서 GetAccountInfo 함수를 이용해 해당 유저의 계정 정보를 받아온다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void GetAccountSuccess(GetAccountInfoResult result)
{
    print("Accout를 정상적으로 받아옴");
 
    string nickname = result.AccountInfo.TitleInfo.DisplayName;
    if(nickname == null)
    {
        SceneManager.LoadScene("NicknameSet");
    }
    else
    {
        PlayerPrefs.SetString("Nickname", nickname);
        SceneManager.LoadScene("Lobby");
    }
}
cs

이것 역시 성공하면 result.AccountInfo.TitleInfo.DisplayName에서 디스플레이 네임을 받아올 수 있다.

디스플레이 네임이 없다면 닉네임설정씬으로. 있다면 로비로 보내버림.




디스플레이 네임이 없다면 새로 업데이트해주면 되는데 마찬가지로 아래와 같이 업데이트해주면 된다.

1
2
3
// playfab 서버 접속되었는지 확인하여 되면 실행. 아니면 에러메세지 출력
var request = new UpdateUserTitleDisplayNameRequest { DisplayName = Input_nickname.text };
PlayFabClientAPI.UpdateUserTitleDisplayName(request, DisplayNameUpdateSuccess, DisplayNameUpdateFailure);
cs

PlayFab에서 자체적으로 DisplayName 중복을 방지해주므로 (업데이트 실패) 중복 닉네임의 걱정도 할 필요가 없다.



DisplayName 설정이 완료되면 사이트의 Player 탭에서 이렇게 바로 확인할 수 있다. (공백도 가능)

Posted by misty_
,