2022. 8. 30. 16:46ㆍ기술/네트워크
1. 캐릭터 생성
빠르게 요점만 설명하겠습니다.
일단 경제에 판매목록이 있어야 합니다.
캐릭터를 판매할 것입니다.
일단은 캐릭터 생성 전에 경제에 대해 조금이라도 읽어보는 것을 추천합니다.
통화를 추가합니다. 게임 내 통화 (Gold, Gem)
이 통화는 플레이어 정보/가상통화에서도 확인할 수 있습니다.
최초 입금 10000은 초기 캐릭터 제공 시 10000 골드가 필요하기 때문입니다.
경제/카탈로그에 '캐릭터 구매' 아이템을 추가합니다.
외에도 캐릭터 구매권 아이템, 아이템 뽑기권 아이템, 캐릭터 이름 변경권 아이템등 지급 가능한 아이템을 의미합니다.
아이템 만들때 아이템 ID, 캐릭터 만들기용 토큰 체크가 중요합니다.
아이템 ID를 Character로 지정, 표시 이름은 캐릭터 구매, 누적가능도 일단 체크해 두는 것을 추천합니다.
이 캐릭터 아이템이 구매된 상태여야 합니다. 다음 함수를 통해 구매합니다.
가상화폐로 구매한다는 내용의 API입니다. (앱스토어의 구매함수X)
// 기본제공 캐릭터
PlayFabClientAPI.PurchaseItem(new PurchaseItemRequest()
{
CatalogVersion = "Characters",
ItemId = "Character",
VirtualCurrency = "GL",
Price = 10000
},
플레이어 인벤토리 사용 - PlayFab | Microsoft Docs
플레이어 / 인벤토리에서 지급을 할 수도 있습니다. (게임 운영)
캐릭터를 생성합니다
PlayFabClientAPI.GrantCharacterToUser(new GrantCharacterToUserRequest()
{
CatalogVersion = "Characters",
CharacterName = "캐릭터이름",
ItemId = "Character"
},
result 결과로 CharacterId를 얻을 수 있습니다.
캐릭터가 생성됨을 확인할 수 있습니다
캐릭터 정보를 갱신합니다
PlayFabClientAPI.UpdateCharacterData(new UpdateCharacterDataRequest()
{
CharacterId = chr.playfabID,
Data = chrData.PlayFabData
},
Data는 뒤끝 서버의 Param 을 변형시킵니다.
캐릭터 데이터가 갱신됨을 확인할 수 있습니다.
2. 캐릭터 삭제
PlayFabEditorExtensions.unitypackage 설치
창 > PlayFab > Editor Extensions 열기
ENABLE SERVER API 체크 하시면 PlayFabServerApi.cs 파일이 ENABLE 되면서
다음 코드를 사용할 수 있습니다.
PlayFabServerAPI.DeleteCharacterFromUser(new PlayFab.ServerModels.DeleteCharacterFromUserRequest()
{
PlayFabId = m_PlayFabID,
CharacterId = listDeletePlayer[i].CharacterId,
SaveCharacterInventory = false
},
ResSuccess =>
{
Debug.LogFormat("캐릭터 삭제 완료");
},
ResError =>
{
Debug.LogFormat("<color=red>캐릭터 삭제 실패 {0}</color>", ResError.GenerateErrorReport());
});
3. 가상화폐
불러오기
void LoadGoodsPlayFab()
{
PlayFabClientAPI.GetUserInventory(new GetUserInventoryRequest()
{
},
success =>
{
int gold = success.VirtualCurrency["GL"]; // 플레이팹 게임관리자에서 설정한 문자열
},
error =>
{
Debug.LogFormat("<color=red>가상화폐 로드 실패 {0}</color>", error.GenerateErrorReport());
// 네트워크 에러 창
});
}
가상화폐 (골드) 사용 후 플레이팹 서버의 정보를 갱신해야 할 때
일단 타이틀 설정 > API 기능 >
v 클라이언트가 가상 통화를 추가할 수 있도록 허용
v 클라이언트가 가상 통화를 뺄 수 있도록 허용
체크해주어야 합니다.
아마 경제에 구매 아이템류를 등록 시킨 다음 PlayFabClientAPI.PurchaseItem 함수를 통해 구매하며 가상 통화를 차감하기를 유도한 것으로 보입니다.
// GameInfoOperator는 뒤끝 서버에서 사용하는 가감 계산용
void UpdateGoodsPlayFab(int amount, GameInfoOperator gameInfoOperator)
{
switch (gameInfoOperator)
{
case GameInfoOperator.addition: // 추가
PlayFabClientAPI.AddUserVirtualCurrency(new AddUserVirtualCurrencyRequest()
{
VirtualCurrency = "GL",
Amount = amount
},
success =>
{
// 변경된 재화양
int gold = success.Balance;
},
error =>
{
Debug.LogFormat("<color=red>골드 추가 실패 {0}</color>", error.GenerateErrorReport());
// 네트워크 에러 창
});
break;
case GameInfoOperator.subtraction:
PlayFabClientAPI.SubtractUserVirtualCurrency(new SubtractUserVirtualCurrencyRequest()
{
VirtualCurrency = "GL",
Amount = amount
},
success =>
{
// 변경된 재화양
int gold = success.Balance;
},
error =>
{
Debug.LogFormat("<color=red>골드 사용 실패 {0}</color>", error.GenerateErrorReport());
// 네트워크 에러 창
});
break;
}
}
참조하면 좋은 블로그
고라니 유니티2D: 가상화폐 상점 아이템 인벤토리ㅣPlayFab (goraniunity2d.blogspot.com)
기타 : 안드로이드 영수증 검증
Getting started with PlayFab, Unity IAP, and Android - PlayFab | Microsoft Learn
기본으로 설정된 Catalog에 아이템을 추가해야 함. 그렇지 않으면 카타로그에 상품(Item)이 없다고 나옴.
기타 : 길드 관련
Groups - Create Group - REST API (PlayFab Groups) | Microsoft Learn
'기술 > 네트워크' 카테고리의 다른 글
PlayFab 로그인 부터 DB 데이터 추가까지 (0) | 2022.08.26 |
---|---|
뒤끝 서버 VS PlayFab 가격정책 (1) | 2022.06.11 |
푸시 알림 유니티 (Notification Unity) (0) | 2021.12.24 |
파이어베이스 (Firebase) (0) | 2021.06.02 |
유니티 데이터베이스 연동 (Unity Database connection) (0) | 2020.02.05 |