반응형
클라우드 스크립트 사용하는 이유?
클라이언트에서 코드를 처리하는 방식이 아닌 서버에서 처리하기때문에 로그를 남길 수도 있고 더 빠르고 안전하게 코드를 처리할 수 있습니다.
코드 작성 (기본값 세팅)
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);
}
}
}
참고할만한 글
반응형