Cloud Code C# 모듈을 통해 Leaderboards에 액세스
Refer to code samples that access Leaderboards with Cloud Code C# Modules.
읽는 시간 1분최근 업데이트: 14시간 전
Cloud Code C# 모듈을 통해 Cloud Code를 사용하여 Leaderboards 기능에 액세스할 수 있습니다. 플레이어가 Cloud Code 모듈을 호출하는 예제를 가정해 봅니다. 코드 스니핏에서 플레이어의 점수를 제출하고, 엔트리(예: 순위)를 검색하며, 리더보드에서 최고 점수를 검색합니다. C#:
Cloud Code를 통해 플레이어 범위 엔드포인트에 대한 관리자 레벨 액세스를 이용할 수도 있습니다. 이렇게 하면 여러 플레이어의 점수를 업데이트하거나 Cloud Code 모듈을 호출한 플레이어가 아닌 플레이어의 점수를 업데이트할 수 있습니다. 이 작업은 액세스 토큰 대신 Cloud Code 모듈로 서비스 토큰을 전달하여 완료됩니다. C#:using Microsoft.Extensions.DependencyInjection;using Unity.Services.CloudCode.Apis;using Unity.Services.CloudCode.Core;using Unity.Services.Leaderboards.Model;public class LeaderboardsExample{ [CloudCodeFunction("LeaderboardsExample")] public async Task<LeaderboardResult> LeaderboardsExampleAsync( IExecutionContext context, IGameApiClient apiClient, string leaderboardId, string playerId, int score) { string accessToken = context.AccessToken; Guid projectId = Guid.Parse(context.ProjectId); var addScoreResult = await apiClient.Leaderboards.AddLeaderboardPlayerScoreAsync( context, accessToken, projectId, leaderboardId, playerId, new LeaderboardScore(score)); var getScoreResult = await apiClient.Leaderboards.GetLeaderboardPlayerScoreAsync( context, accessToken, projectId, leaderboardId, playerId); var getScoresResult = await apiClient.Leaderboards.GetLeaderboardScoresAsync( context, accessToken, projectId, leaderboardId); return new LeaderboardResult() { AddScoreResult = addScoreResult.StatusCode.ToString(), GetScoreResult = getScoreResult.Data, GetScoresResult = getScoresResult.Data }; }}public class LeaderboardResult{ public string AddScoreResult { get; set; } public LeaderboardEntryWithUpdatedTime GetScoreResult { get; set; } public LeaderboardScoresPage GetScoresResult { get; set; }}public class ModuleConfig : ICloudCodeSetup{ public void Setup(ICloudCodeConfig config) { config.Dependencies.AddSingleton(GameApiClient.Create()); }}
public class LeaderboardsExample{ [CloudCodeFunction("LeaderboardsExample")] public async Task<LeaderboardResult> LeaderboardsExampleAsync( IExecutionContext context, IGameApiClient apiClient, string leaderboardId, string playerId, int score) { string serviceToken = context.ServiceToken; Guid projectId = Guid.Parse(context.ProjectId); var addScoreResult = await apiClient.Leaderboards.AddLeaderboardPlayerScoreAsync( context, serviceToken, projectId, leaderboardId, playerId, new LeaderboardScore(score)); var getScoreResult = await apiClient.Leaderboards.GetLeaderboardPlayerScoreAsync( context, serviceToken, projectId, leaderboardId, playerId); var getScoresResult = await apiClient.Leaderboards.GetLeaderboardScoresAsync( context, serviceToken, projectId, leaderboardId); return new LeaderboardResult() { AddScoreResult = addScoreResult.StatusCode.ToString(), GetScoreResult = getScoreResult.Data, GetScoresResult = getScoresResult.Data }; }}