Native 및 Android Studio용 Java 빠른 시작
이 빠른 시작을 사용하면 PlayFab JavaSDK와 간단한 Java 프로그램을 구동하여 실행할 수 있습니다.
PlayFab API를 호출하려면 먼저 PlayFab 개발자 계정이 있어야 합니다.
이 자습서의 목표는 다음과 같습니다.
필요한 JAR 파일을 획득합니다.
JAR 파일을 클래스 경로에 추가합니다.
사용자 지정 ID 로그인 API 호출을 실행하는 가장 작은 Java 콘솔 응용 프로그램을 만듭니다.
필요한 JAR 파일 획득
PlayFab JavaSDK를 활용하려면 PlayFab 클라이언트 JavaSDK 및 그 종속인 Google GSON이 필요합니다.
여기에 PlayFab 클라이언트 JavaSDK JAR 라이브러리를 다운로드합니다. client-sdk-*.jar 및 해당 Java 문서 [선택 사항이지만 유용합니다]를 찾습니다.
여기에서 최신 Google GSON을 다운로드할 수 있습니다. gson *.jar을 찾습니다.
Intellij Idea로 프로젝트 설정
간단한 Intellij Idea Java 프로젝트를 초기화한 후, 필수 JAR 파일을 아래 예시와 같은 위치에 배치해야 합니다.
다음 단계는 JAR 파일을 클래스 경로에 추가하는 것입니다. 아래 예시와 같이 파일 ->,(으)로 이동합니다.
라이브러리로 이동하고 아래 이미지와 같이 Java 라이브러리를 추가합니다.
libs 폴더에 추가한 JAR 파일을 선택한 다음 아래와 같이 확인을 선택합니다.
모듈을 묻는 메시지가 표시되면 목록에서 첫 번째 모듈을 선택합니다. 모든 JAR 파일이 라이브러리 목록에 추가되었는지 확인합니다.
임의 IDE로 프로젝트 설정
주 요구 사항은 JAR 파일을 클래스 경로에 추가하는 것입니다. 클래스 경로에 JAR 파일을 추가하는 방법은 IDE에 대한 가이드를 참조하세요.
첫 번째 API 호출 설정
아래에 표시된 코드를 주 클래스 코드로 사용합니다.
import java.util.concurrent.*;
import java.util.*;
import com.playfab.PlayFabErrors.*;
import com.playfab.PlayFabSettings;
import com.playfab.PlayFabClientModels;
import com.playfab.PlayFabClientAPI;
public class Main
{
private static boolean _running = true;
public static void main(String[] args) {
PlayFabSettings.TitleId = "144";
PlayFabClientModels.LoginWithCustomIDRequest request = new PlayFabClientModels.LoginWithCustomIDRequest();
request.CustomId = "GettingStartedGuide";
request.CreateAccount = true;
FutureTask<PlayFabResult<com.playfab.PlayFabClientModels.LoginResult>> loginTask = PlayFabClientAPI.LoginWithCustomIDAsync(request);
loginTask.run();
while (_running) {
if (loginTask.isDone()) { // You would probably want a more sophisticated way of tracking pending async API calls in a real game
OnLoginComplete(loginTask);
}
// Presumably this would be your main game loop, doing other things
try {
Thread.sleep(1);
} catch(Exception e) {
System.out.println("Critical error in the example main loop: " + e);
}
}
}
private static void OnLoginComplete(FutureTask<PlayFabResult<com.playfab.PlayFabClientModels.LoginResult>> loginTask) {
PlayFabResult<com.playfab.PlayFabClientModels.LoginResult> result = null;
try {
result = loginTask.get(); // Wait for the result from the async call
} catch(Exception e) {
System.out.println("Exception in PlayFab api call: " + e); // Did you assign your PlayFabSettings.TitleId correctly?
}
if (result != null && result.Result != null) {
System.out.println("Congratulations, you made your first successful API call!");
} else if (result != null && result.Error != null) {
System.out.println("Something went wrong with your first API call.");
System.out.println("Here's some debug information:");
System.out.println(CompileErrorsFromResult(result));
}
_running = false; // Because this is just an example, successful login triggers the end of the program
}
// This is a utility function we haven't put into the core SDK yet. Feel free to use it.
private static <RT> String CompileErrorsFromResult(PlayFabResult<RT> result) {
if (result == null || result.Error == null)
return null;
String errorMessage = "";
if (result.Error.errorMessage != null)
errorMessage += result.Error.errorMessage;
if (result.Error.errorDetails != null)
for (Map.Entry<String, List<String>> pair : result.Error.errorDetails.entrySet() )
for (String msg : pair.getValue())
errorMessage += "\n" + pair.getKey() + ": " + msg;
return errorMessage;
}
}
완료 및 실행
응용 프로그램을 실행하려면:
- 오른쪽 위 모서리에서 재생 화살표 >를 선택합니다. 그러면 프로그램 실행이 시작되고 출력 패널이 표시됩니다.
- 디버그 메시지를 찾습니다. 이는 API 호출이 성공했음을 나타냅니다.
이 시점에서 다른 API 호출을 만들고 게임을 빌드할 수 있습니다.
사용 가능한 모든 클라이언트 API 호출 목록을 보려면 PlayFab API 참조 설명서를 참조하세요.
코드 분해
선택 사항인 이 마지막 섹션은 GettingStarted.java
의 모든 줄에 대해 자세히 설명합니다.
가져오기
- PlayFab API 호출을 만드는 데 사용되는 일련의 최소 가져오기입니다.
public static void
main(String[] args) {
API 호출을 시작하는 기본 루프로, 완료될 때까지 기다립니다.
PlayFabSettings.TitleId = "xxxx"
;- 모든 PlayFab 개발자는 게임 관리자에서 타이들을 만듭니다. 게임을 게시할 때 게임에 해당 titleId를 코딩해야 합니다. 이렇게 하면 클라이언트가 PlayFab 내에서 올바른 데이터에 액세스하는 방법을 알 수 있습니다. 대부분의 사용자는 이 작업을 PlayFab을 작동시키기 위한 필수 단계로 생각하면 됩니다.
PlayFabClientModels.LoginWithCustomIDRequest request = new PlayFabClientModels.LoginWithCustomIDRequest();
대부분의 PlayFab API 메서드에는 입력 매개 변수가 필요하고 이러한 입력 매개 변수는 요청 개체로 압축됩니다.
모든 API 메서드는 선택적 매개 변수와 필수 매개 변수가 혼합된 고유 요청 개체가 필요합니다.
-
LoginWithCustomIDRequest
의 경우, 플레이어와CreateAccount
를 고유하게 식별하는CustomId
라는 필수 매개 변수가 있어 이 호출로 새로운 계정을 생성하도록 합니다.
-
로그인을 위해 대부분의 개발자들은 보다 적절한 로그인 메서드를 사용하고자 합니다.
- 모든 로그인 메서드 및 입력 매개 변수 목록 목록은 PlayFab 로그인 설명서를 참조하세요. 일반적인 옵션은 다음과 같습니다.
LoginWithAndroidDeviceID
LoginWithIOSDeviceID
LoginWithEmailAddress
- 모든 로그인 메서드 및 입력 매개 변수 목록 목록은 PlayFab 로그인 설명서를 참조하세요. 일반적인 옵션은 다음과 같습니다.
FutureTask<PlayFabResult<com.playfab.PlayFabClientModels.LoginResult>> loginTask = PlayFabClientAPI.LoginWithCustomIDAsync(request)
;- 이는 Java FutureTask 프레임워크를 사용하여
LoginWithCustomID
비동기 요청을 시작합니다.
- 이는 Java FutureTask 프레임워크를 사용하여
While (실행 중)
{ if (loginTask.isDone()) { OnLoginComplete(loginTask); } }
- 작은 주 루프를 실행하고 loginTask가 완료될 때까지 비동기적으로 기다립니다.
- 완료되면
OnLoginComplete
을(를) 호출합니다.
OnLoginComplete (loginTask)
result = loginTask.get()
;- 비동기 결과를 가져옵니다(FutureTask가 이미 완료되었음을 확인했기 때문에 차단이 발생하지 않습니다.
(
result.Result != null
)인 경우 API 호출이 성공한 것입니다.성공한 경우 많은 API 콜백에 대한
result.Result
개체에는 요청된 정보가 포함됩니다.LoginResult
에는 특히 플레이어에 대한 몇 가지 기본 정보가 포함되어 있습니다. 그러나 대부분의 사용자에게는 다른 API를 호출하기 전에 수행해야 할 필수 단계일 뿐입니다.
(
result.Error != null
)인 경우 API 호출이 실패한 것입니다.- API 호출은 여러 가지 이유로 실패할 수 있으며, 항상 실패 처리를 시도해야 합니다.
- API 호출이 실패하는 이유(가능성이 높은 순서대로 나열)
-
PlayFabSettings.TitleId
이(가) 설정되지 않았습니다. 타이틀에TitleId
를 설정하는 것을 잊은 경우 아무 작업도 수행되지 않습니다. - 요청 매개 변수. 특정 API 호출에 대해 정확하거나 필요한 정보를 제공하지 않은 경우 호출에 실패합니다. 자세한 내용은
error.errorMessage
,error.errorDetails
또는error.GenerateErrorReport()
를 참조하세요. - 장치 연결 문제. 휴대폰은 지속적으로 연결이 끊어졌다가 다시 연결되므로 언제든지 모든 API 호출이 실패하고 난 후 바로 다시 작동할 수 있습니다. 터널로 들어가면 연결이 완전히 끊길 수 있습니다.
- PlayFab 서버 문제. 모든 소프트웨어와 마찬가지로 문제가 있을 수 있습니다. 업데이트에 대해서는 릴리스 정보를 참조하세요.
- 인터넷은 100% 신뢰할 수 없습니다. 때때로 메시지가 손상되었거나 PlayFab 서버에 연결되지 않을 수 있습니다.
-
문제를 디버깅하는 데 문제가 있는 경우 오류 정보 내의 정보로는 충분하지 않습니다. 포럼에서 문의해 주시기 바랍니다.