본문 바로가기
개발/Playfab

유니티 플레이팹 클라우드 스크립트 사용 Playfab CloudScripts 간단 사용법

by SPNK 2022. 7. 12.
반응형

클라우드 스크립트 사용하는 이유?

클라이언트에서 코드를 처리하는 방식이 아닌 서버에서 처리하기때문에 로그를 남길 수도 있고 더 빠르고 안전하게 코드를 처리할 수 있습니다.

 

 

코드 작성 (기본값 세팅)

using PlayFab;
using PlayFab.ClientModels;
using PlayFab.Json;
using PlayFab.ProfilesModels;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayfabManager : MonoBehaviour
{
    private void SetEditorOnlyMessage(string message, bool error = false)
    {
        if (error) Debug.LogError("<color=red>" + message + "</color>");
        else Debug.Log(message);
    }
    
    private void DisplayPlayfabError(PlayFabError error) => SetEditorOnlyMessage("error : " + error.GenerateErrorReport(), true);


    private void OnCloudUpdateStats(ExecuteCloudScriptResult result)
    {
        SetEditorOnlyMessage(PluginManager.GetPlugin<ISerializerPlugin>(PluginContract.PlayFab_Serializer).SerializeObject(result.FunctionResult));
        JsonObject jsonResult = (JsonObject)result.FunctionResult;
        foreach (var json in jsonResult)
        {
            SetEditorOnlyMessage(json.Key + " / " + json.Value);
        }
        object messageValue;
        jsonResult.TryGetValue("OnCloudUpdateStats() messageValue", out messageValue);
        SetEditorOnlyMessage((string)messageValue);
    }


    public void UseCloudScript(string name, int value)
    {
        try
        {
            PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest()
            {
                FunctionName = "CloudScriptName",
                FunctionParameter = new
                {
                    Statistics = new List<StatisticUpdate>
                {
                    new StatisticUpdate {StatisticName = name, Value = value}
                }
                },
                GeneratePlayStreamEvent = true,
            }, OnCloudUpdateStats, DisplayPlayfabError);
        }
        catch (Exception e)
        {
            Debug.LogError(e.Message);
        }
    }
}

 


참고할만한 글

 

CloudScript(레거시) 빠른 시작 - PlayFab

PlayFab 게임 관리자에서 CloudScript(레거시) 파일을 업로드하고 관리하는 방법을 설명합니다.

docs.microsoft.com

 

 

반응형

댓글