Defold 프로젝트 설정
OS: 이 가이드는 Windows 10용으로 작성되었습니다. Mac에서도 잘 작동합니다.- 계정을 만들고 defold를 다운로드하거나 https://www.defold.com/ (Google O-Auth 사용)에서 로그인하세요: https://d.defold.com/stable/.
- Defold “시작하기 튜토리얼”을 완료하지 않은 경우 지금 진행하세요.
- 아래와 같이 Defold Dashboard에서 새 프로젝트를 만듭니다.
- Defold를 실행하고 새 프로젝트를 로드합니다. 아래 예시와 비슷한 여러 창이 표시됩니다.
- 프로젝트 설정을 업데이트하고 종속성에 PlayFab을 포함합니다: https://github.com/PlayFab/LuaSdk/raw/master/Defold/PlayFabClientSdk.zip
- Project -> Fetch Libraries를 선택하면 아래와 같이 새로운 기본 제공 PlayFab 폴더가 표시됩니다.
-
몇 개의 파일을 만듭니다:
- main/PfGettingStarted.gui
- “main” 폴더를 선택 -> new -> Gui File -> PfGettingStarted.gui.
- main/PfGettingStarted.gui_script
- “main” 폴더 선택 -> new -> Gui Script File -> PfGettingStarted.gui_script.
-
main.collection에서 새 GUI를 연결합니다.
- main.collection을 선택하여 엽니다.
-
Outline 패널에서:
- Add Game Object를 선택합니다(원할 경우 PfGui로 이름 변경).
- 새 객체를 선택하고 Add Component From File…
- PfGettingStarted.gui (위에서 만듦).
- 새 객체를 선택하고 Add Component From File…
- Add Game Object를 선택합니다(원할 경우 PfGui로 이름 변경).
- main.collection을 보여주는 Outline 패널은 아래 예시와 같이 보여야 합니다.
첫 번째 API 호출 설정
이 가이드에서는 첫 번째 PlayFab API 호출을 수행하는 데 필요한 최소 단계를 제공합니다. 확인은 게임 창에서 볼 수 있습니다.- Defold 편집기에서 PfGettingStarted.gui_script를 두 번 클릭합니다.
- 텍스트 편집을 위해 파일이 열립니다.
- 아래와 같이 PfGettingStarted.gui_script의 내용을 업데이트합니다.
이 예제에서 loginRequest 객체의 올바른 형식을 확인하려면 LoginWithCustomID의 API 참조를 확인하세요.
-
Defold 편집기에서 PfGettingStarted.gui를 마우스 오른쪽 버튼으로 클릭 -> Open With -> Text Editor. 안타깝게도 이 작업은 Defold의 내부 설정을 변경하므로:
- 다시 열기: PfGettingStarted.gui를 마우스 오른쪽 버튼으로 클릭 -> Open With -> GUI Editor. 이렇게 하면 기본값이 정상으로 재설정됩니다.
- PfGettingStarted.gui의 텍스트 편집 탭을 선택합니다.
- 아래와 같이 PfGettingStarted.gui의 텍스트 내용을 업데이트합니다.
완료 및 실행
먼저 모든 것이 저장되었는지 확인하고 다른 탭을 선택합니다. 그런 다음 ” * ” 표시를 찾으세요 - 때때로 Defold가 새로 고침되지 않는 경우가 있습니다. 그런 다음 게임을 빌드합니다(Ctrl+b 또는 드롭다운: Project -> Build and Launch). 화면에 다음 텍스트가 표시됩니다: “Congratulations, you made your first successful API call!” 사용 가능한 모든 클라이언트 API 호출 목록은 PlayFab API 참조 문서를 확인하세요. 즐겁게 코딩하세요!코드 분석
-
PfGettingStarted.guiPfGettingStarted.gui에 대한 지침은 편의를 위한 것이며, 설명을 위한 것이 아닙니다. 이 파일은 화면에 텍스트 상자를 추가하고 다른 스크립트인PfGettingStarted.gui_script에 바인딩하는 GUI 정의입니다. 일반적으로 이 파일을 텍스트 형식으로 편집하지 않습니다.- Defold GUI 위젯을 빌드하는 방법에 대한 적절한 지침은 다음 가이드를 참조하세요:
- Defold의 GUI 장면
-
PfGettingStarted.gui_script-
Require 문 및 설정.
PlayFabClientApi를 통해 클라이언트 API 호출을 수행할 수 있습니다 - 이것이 여기 온 이유입니다.- IPlayFabHttps 및 PlayFabHttps_Defold:
- PlayFab Defold 플러그인은 PlayFab LuaSdk 위에 구축됩니다. Lua 언어에는 적절한 HTTPS 모듈이 없습니다. Lua를 사용하는 각 게임 엔진은 자체적으로 구현합니다. 이 두 변수는 PlayFabSdk에 HTTPS에 액세스하는 방법을 알려줍니다. 프로젝트의 첫 번째 장면에서 한 번만 이 작업을 수행하면 됩니다. 그렇지 않으면 필수 상용구 코드입니다.
-
PlayFabClientApi.settings.titleId = "144"- PlayFab을 사용하는 모든 프로젝트는 PlayFab 웹사이트(Game Manager라고 부름)에서 고유한 타이틀을 만들어야 합니다. Game Manager에서
titleId를 찾아144를 자신의titleId로 바꾸세요.
- PlayFab을 사용하는 모든 프로젝트는 PlayFab 웹사이트(Game Manager라고 부름)에서 고유한 타이틀을 만들어야 합니다. Game Manager에서
-
function init(self)- Defold 함수 - gui가 초기화될 때 호출됩니다.
-
local loginRequest = { TitleId = PlayFabClientApi.settings.titleId, CustomId = "GettingStartedGuide", CreateAccount = true }- 대부분의 PlayFab API 메서드는 입력 매개 변수를 필요로 하며, 이러한 입력 매개 변수는 요청 객체에 패킹됩니다.
- 모든 API 메서드는 선택 및 필수 매개 변수의 조합이 포함된 고유한 요청 객체가 필요합니다.
LoginWithCustomIDRequest에는 플레이어를 고유하게 식별하는 필수 매개 변수인CustomId와 이 호출로 새 계정을 만들 수 있게 해주는CreateAccount가 있습니다.
- 로그인의 경우 대부분의 개발자는 보다 적합한 로그인 방법을 사용하고 싶어할 것입니다.
- 모든 로그인 방법과 입력 매개 변수 목록은 PlayFab 로그인 설명서를 확인하세요. 일반적인 선택지는 다음과 같습니다:
-
PlayFabClientApi.LoginWithCustomID(loginRequest, OnLoginSuccess, OnLoginFailed)- 요청을 사용하여 API 호출을 수행하고 성공 및 실패 조건에 대한 콜백 함수를 제공합니다.
-
function OnLoginSuccess(result)- 많은 API 성공 콜백의 result 객체에는 요청된 정보가 포함됩니다.
LoginResult에는 플레이어에 대한 기본 정보가 포함되어 있지만, 대부분의 사용자에게 로그인은 다른 API를 호출하기 전의 필수 단계에 불과합니다.
-
function OnLoginFailed(error)- API 호출은 여러 가지 이유로 실패할 수 있으며 항상 실패 처리를 시도해야 합니다.
-
API 호출이 실패하는 이유(가능성이 높은 순)
- PlayFabSettings.TitleId가 설정되지 않음. 타이틀에 대해 titleId를 설정하는 것을 잊으면 아무것도 작동하지 않습니다.
-
요청 매개 변수. 특정 API 호출에 대해 올바르거나 필수적인 정보를 제공하지 않으면 실패합니다. 자세한 내용은
error.errorMessage,error.errorDetails또는error.GenerateErrorReport()를 참조하세요. - 장치 연결 문제. 휴대전화는 지속적으로 연결이 끊어졌다가 다시 연결되므로 언제든지 API 호출이 무작위로 실패한 후 바로 다시 작동할 수 있습니다. 터널에 들어가면 완전히 연결이 끊길 수 있습니다.
- PlayFab 서버 문제. 모든 소프트웨어와 마찬가지로 문제가 발생할 수 있습니다. 업데이트는 릴리스 노트를 확인하세요.
- 인터넷이 100% 신뢰할 수 있는 것은 아닙니다. 때로는 메시지가 손상되거나 PlayFab 서버에 도달하지 못할 수 있습니다.
- 문제를 디버깅하는 데 어려움이 있고 오류 정보 내의 정보가 충분하지 않은 경우 포럼을 방문하세요.
-
local pfTestOutput = gui.get_node("pfOutput")- 이는 또 다른 Defold GUI 함수입니다. PfGettingStarted.gui 파일에 정의된
pfOutputGUI 객체를 가져와서 사용자에게 표시할 텍스트를 할당합니다.
- 이는 또 다른 Defold GUI 함수입니다. PfGettingStarted.gui 파일에 정의된
-
Require 문 및 설정.
