Unity

[Unity] Playfab Function 정리 -1

Guk-blog 2020. 8. 18. 11:03
728x90
반응형

커스텀 로그인

public void OnClickGuestLogin()
    {
        PlayFabClientAPI.LoginWithCustomID(new LoginWithCustomIDRequest()
            {
            	//디바이스 아이디로 커스텀 로그인
                CustomId = SystemInfo.deviceUniqueIdentifier,
                // 기존 계정이 없다면 생성
                CreateAccount = true
            }, result => 
            {
            	Debug.Log("Success");
            },
            (error) => 
            {
            	Debug.Log("Fail");
            });
        
    }

 

인벤토리 업데이트

public void SetInventoryCustomData(string itemInstanceID, Dictionary<string, string> datas)
    {
        PlayFab.ServerModels.UpdateUserInventoryItemDataRequest request = new PlayFab.ServerModels.UpdateUserInventoryItemDataRequest
        {
            PlayFabId = PlayfabID,
            ItemInstanceId = itemInstanceID,
            Data = datas
        };

        PlayFabServerAPI.UpdateUserInventoryItemCustomData(request,
            result =>
            {
            	Debug.Log("Success");
            }, (error) => {
            	Debug.Log("Fail");
            }
    }

 

인벤토리 정보 가져오기

public void GetUserInventoryShop() //상점 12:00 갱신 여부 초기화
    {
        PlayFabClientAPI.GetUserInventory(new GetUserInventoryRequest(), result =>
        {
            var Inventory = result.Inventory;
            
            //SP라는 키값인 재화의 양을 가져와 _sp에 저장
            _sp = result.VirtualCurrency["SP"];
        }, fail =>
        {
        	Debug.Log("Fail);
        }
        );
    }

 

상점 정보 가져오기

public void GetShopCatalog() //상점 카탈로그 데이터 가져오기
    {
          PlayFabClientAPI.GetCatalogItems(new GetCatalogItemsRequest() { CatalogVersion = "TargetShop_Data" }, shop1 =>
          {
            var Catalog = shop1.Catalog;
          }, (error) => {
          	Debug.Log("Fail");
          }
    }

 

재화 + -

public void AddVirtualCurrency(string key, int num)
    {
        var request = new AddUserVirtualCurrencyRequest() { VirtualCurrency = key, Amount = num };
        PlayFabClientAPI.AddUserVirtualCurrency(request, 
        (result) => Debug.Log("Success"), 
        (error) => Debug.Log("Fail"));
    }
    
    public void SubtractVirtualCurrency(string key,int num)
    {
        var request = new SubtractUserVirtualCurrencyRequest() { VirtualCurrency = key, Amount = num };
        PlayFabClientAPI.SubtractUserVirtualCurrency(request, 
        (result) => Debug.Log("Success"), 
        (error) => Debug.Log("Fail"));
    }

 

유저에게 아이템 주기

public void GiveItemToUser(string catalogversion, List<string> itemIds) //아이템 주기
    {
        PlayFab.ServerModels.GrantItemsToUserRequest request = new PlayFab.ServerModels.GrantItemsToUserRequest
        {
            CatalogVersion = catalogversion,
            PlayFabId = PlayfabID,
            ItemIds = itemIds
        };
        PlayFabServerAPI.GrantItemsToUser(request,
            result =>
            {
                Debug.Log("Success");
                },
            error =>
                Debug.Log("Fail");
            );
    }
728x90
반응형