본문 바로가기

Unity

Playfab - 4 가상화폐, 상점, 아이템, 인벤토리

1. 가상통화 증가 감소

가상화폐 기능을 사용하기 위해서는 타이틀 설정 - API 기능 - 클라이언트가 가상 통화를 추가할 수 있도록 허용과 뺄 수 있도록 허용을 체크해야 한다.

 

경제 - 통화 탭에서 새 통화를 클릭

통화 코드와 표시 이름을 설정하고 통화 저장을 누른다.

성공적으로 가상통화가 만들어졌다면 플레이어의 가상통화 탭에 나타난다.

가상 화폐 증가 감소 스크립트

    public void AddMoney()
    {
        var request = new AddUserVirtualCurrencyRequest() { VirtualCurrency = "GD", Amount = 50 };
        PlayFabClientAPI.AddUserVirtualCurrency(request, (result) => print("Add Money Success! current balance : " + result.Balance), (error) => print("Add Money Failure"));
    }

    public void SubtractMoney()
    {
        var request = new SubtractUserVirtualCurrencyRequest() { VirtualCurrency = "GD", Amount = 50 };
        PlayFabClientAPI.SubtractUserVirtualCurrency(request, (result) => print("Subtract Money Success! current balance : " + result.Balance), (error) => print("Subtract Money Failure"));
    }

 

결과 

 

 

 

 

2. 상점, 인벤토리

경제 - 카탈로그 - 새카탈로그를 선택

 

카탈로그 이름을 설정하고 저장

 

아이템 추가를 눌러서 Apple 아이템 추가

 

 

아이템 구매, 사용 스크립트

    public void PurchaseItem()
    {
        var request = new PurchaseItemRequest() { CatalogVersion = "Main", ItemId = "Apple", VirtualCurrency = "GD", Price = 10 };
        PlayFabClientAPI.PurchaseItem(request, (result) => print("Purchase Item Success"), (error) => print("Purchase Item Failure"));
    }

    public void ConsumeItem()
    {
        var request = new ConsumeItemRequest() { ConsumeCount = 1, ItemInstanceId = "E60AF8BD65A1820E" };
        PlayFabClientAPI.ConsumeItem(request, (result) => print("Consume Item Success"), (error) => print("Consume Item Failure"));
    }

ItemInstanceId는 처음 인벤토리나 상점을 불러올 때 가지고 오면 된다.

 

인벤토리 불러오기 스크립트

    public void GetInventory()
    {
        PlayFabClientAPI.GetUserInventory(new GetUserInventoryRequest(), (result) =>
        {
            print("현재 금액" + result.VirtualCurrency["GD"]);
            for (int i = 0; i < result.Inventory.Count; i++)
            {
                var Inven = result.Inventory[i];
                print(Inven.DisplayName + " / " + Inven.UnitCurrency + " / " + Inven.UnitPrice + " / " + Inven.ItemInstanceId + " / " + Inven.RemainingUses);
            }
        },
        (error) => print("인벤토리 불러오기 실패"));
    }

 

결과

 

 

 

참조: https://www.youtube.com/watch?v=pWBm8Qr3kEw&list=PL3KKSXoBRRW14-AYuFurtiDuYqfSPf1zQ&index=7