Ideias e funcionalidades do jogo

A tua próxima funcionalidade

Conquistas

Cada chave desbloqueia uma vez por jogador. O modo manual confia no jogo; os limiares são avaliados na mesma transação afetada.

SDK: developRequer uma sessão de jogador
Unity
Ilustração de Conquistas
O resultado visível

Após a ação, first_steps fica desbloqueado para o mesmo jogador. Repetir a chave não concede outra conquista nem recompensa.

Vídeo em breve

Este passo ainda não tem vídeo. O guia e o pedido MCP já podem ser usados.

Conquistas

Preparar o mesmo projeto

  1. Seleciona no painel o mesmo projeto que na configuração do teu jogo.

    Conquistas →
  2. Criem ou reutilizem estas entradas de teste no formulário do painel. São valores de exemplo, não dados atuais.

    Chave
    first_steps
    Nome
    First steps
    Regra de desbloqueio
    manual
    Ativo
    true
    Oculto até desbloquear
    false
    Sem recompensa
    []

    Cada chave desbloqueia uma vez por jogador. O modo manual confia no jogo; os limiares são avaliados na mesma transação afetada.

  3. Guardem, recarreguem e verifiquem as entradas antes do exemplo. Preservem as restantes definições.

Integra esta funcionalidade

Podes consultar o guia. Para o executar, precisas de uma chave de projeto ativa. Preparar o projeto

SDK instalado, configuração do projeto importada e jogador com sessão iniciada.

Este exemplo do SDK usa develop. Verifica se as API necessárias existem no SDK instalado.

Concluam a ligação do início rápido com o jogador escolhido. Chamem RunReviewedAction() através de um botão ou ação explícita da cena. Abrir o ficheiro não envia pedidos.

C#
Assets/Scripts/AchievementsDemo.cs
Chamada ao horizOn
1using System.Linq;
2using UnityEngine;
3using PM.horizOn.Cloud.Core;
4using PM.horizOn.Cloud.Manager;
5​
6// Existing SDK/project configuration and authenticated player session required.
7// Call RunReviewedAction explicitly after reviewing this example and its data.
8// As recompensas são creditadas ao desbloquear a conquista. Se o crédito
9// falhar, toda a ação é revertida.
10// This explicit action unlocks the shown configured achievement key.
11public sealed class AchievementsDemo : MonoBehaviour
12{
13 public async void RunReviewedAction()
14 {
15 var sessionUser = UserManager.Instance.CurrentUser;
16 if (sessionUser == null || !sessionUser.IsValid()) return;
17 var userId = UserManager.Instance.CurrentUser.UserId;
18 var manager = AchievementsManager.Instance;
19 var loaded = await manager.GetAchievements(userId);
20 if (!loaded.IsSuccess) { Debug.LogWarning(loaded.ErrorCode); return; }
21 foreach (var progress in loaded.Data.progress)
22 Debug.Log(progress.key + ": " + progress.rewardState);
23​
24 // Configure a manual first_steps definition, then call this on the matching game action.
25 var unlocked = await manager.Unlock(userId, "first_steps");
26 if (!unlocked.IsSuccess) { Debug.LogWarning(unlocked.ErrorCode); return; }
27 // Repeat the same key after timeout; never create a replacement reward identity.
28 // rewardState is complete, unlockedAt is null, and deliveryResults is empty.
29 // Values were credited atomically. Read PlayerValues again when showing the balance.
30 // No Inbox claim or local value addition. Refresh achievements after statistics updates.
31 }
32}
Abrir o exemplo SDK completo ↗

Testa a tua nova funcionalidade.

Após a ação, first_steps fica desbloqueado para o mesmo jogador. Repetir a chave não concede outra conquista nem recompensa.

Seleciona no painel o mesmo projeto que na configuração do teu jogo.

Endpoints da API
  • GET/achievements
  • POST/achievements/unlock
  • POST/achievements/rewards/deliver
Todos os endpoints na referência da API
A nossa sugestão para o próximo passo

Dá uma pontuação máxima a cada partida.

Guarda a pontuação depois de uma partida e mostra quem está à frente. Continua a usar a ligação e a sessão do jogador.