Unity+PlayFab에서 async/await를 사용하는 방법
2019/09/16 추기
이 보도는 다음과 같은 환경에서 동작 확인을 진행한다.
- Unity 2019.1.13+IL2CPP+iOS 실제
- Unity 2019.1.13+IL2 CPP+Android 실제 시스템
정면
Unity에서 PlayFab를 사용할 때 리셋된 플러그인은 깊어지기 쉬우므로 결과적으로 코드의 가독성이 떨어지는 것은 매우 번거롭다.
다음 코드는 PlayFab 로그인의 예시 코드입니다. Unity에서 PlayFab를 사용할 때 무엇을 하든지 이 코드처럼 리셋을 통해 계속 처리하는 것이 기본입니다.
using PlayFab;
using PlayFab.ClientModels;
using UnityEngine;
public class PlayFabLogin : MonoBehaviour
{
public void Start()
{
PlayFabSettings.staticSettings.TitleId = "xxx";
var request = new LoginWithCustomIDRequest { CustomId = "GettingStartedGuide", CreateAccount = true};
PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccess, OnLoginFailure);
}
private void OnLoginSuccess(LoginResult result)
{
Debug.Log("Congratulations, you made your first successful API call!");
}
private void OnLoginFailure(PlayFabError error)
{
Debug.LogWarning("Something went wrong with your first API call.");
}
}
나는 async/await로 더욱 유창하게 쓰고 싶다. 물론 같은 일을 고려하는 사람도 있다. 포럼에 이런 대화. 있다.PlayFab에는 UnitySDK와 CSharpSDK가 있으니 CSharpSDK를 시도해 보세요.
CSharpSDK는 원래 서버에서 사용하려고 했지만 Unity도 최신 C#를 사용할 수 있기 때문에 Unity도 움직이겠지.
바로 해보고 싶어요.
단계
이 페이지에서 CSharpSDK
using PlayFab;
using PlayFab.ClientModels;
using System.Threading.Tasks;
using UnityEngine;
public class PlayFabLogin : MonoBehaviour
{
async Task Start()
{
PlayFabSettings.staticSettings.TitleId = "xxx";
var request = new LoginWithCustomIDRequest { CustomId = "GettingStartedGuide", CreateAccount = true };
var result = await PlayFabClientAPI.LoginWithCustomIDAsync(request);
var message = result.Error is null
? $"Login success! My PlayFabID is {result.Result.PlayFabId}"
: $"Login failed... {result.Error.ErrorMessage}";
Debug.Log(message);
}
}
결과
아무 문제 없는 것 같습니다.
제 서버 경력이 Unity보다 길어서 async/await를 사용하는 데 익숙해졌기 때문에 UnitySDK에서 CSharpSDK로 전환하고 싶습니다.
Reference
이 문제에 관하여(Unity+PlayFab에서 async/await를 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/_y_minami/items/7ad2bf7f706c24b67c1c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)