SDK do Unity
O SDK principal do MAJACLOUD: C# para Unity com APIs async/await e de corrotinas, uma janela de configuração e um exemplo Starter.
Comentários de código e nomes da API ficam em inglês para corresponder aos SDKs.
Requisitos#
- Unity 2021.3 LTS ou mais recente, incluindo o Unity 6. Built-in, URP e HDRP funcionam: o SDK não tem código de renderização.
- Apenas módulos nativos do Unity (UnityWebRequest, JSON, uGUI). O exemplo usa TextMesh Pro.
- Editor, Windows, macOS, Linux, Android, iOS e WebGL. Nenhuma thread é usada, então async/await é seguro no WebGL. Compatível com IL2CPP.
Instalação#
- Baixe o
.unitypackagena página do seu projeto ou na página de downloads. - No Unity: Assets ▸ Import Package ▸ Custom Package…, selecione o arquivo e importe tudo.
- Quando o Unity pedir para importar o TMP Essentials para o exemplo, aceite.
Tudo fica em Assets/Majacloud: Runtime (o SDK), Editor (ferramentas de configuração), Samples/Starter e Tests.
Conecte seu projeto#
Tools ▸ Majacloud ▸ Setup (também em Project Settings ▸ Majacloud) grava Assets/Resources/MajacloudSettings.asset. O SDK se inicializa a partir dele antes de a primeira cena carregar.
| Campo | Valor |
|---|---|
| Base URL | O endereço desta instalação. https://majacloud.majanite.com |
| Project ID | Painel ▸ Chaves de API. |
| Client Key | A chave pública que começa com pk_live_. Pode ir nas builds com segurança. |
Test connection salva o nome do projeto, o plano e a chave pública da configuração remota, que fixa a verificação de assinatura no seu servidor.
sk_live_…) em uma build do jogo ou em uma página web. Tudo o que é entregue aos jogadores pode ser lido.Configuração por código#
Crie as configurações em tempo de execução, por exemplo para apontar builds de desenvolvimento para um servidor de staging:
// Switch environments from code (e.g. a staging server in development builds)
var settings = ScriptableObject.CreateInstance<MajacloudSettings>();
settings.Configure("https://staging.yourstudio.com", "<project id>", "pk_live_…");
Majacloud.Initialize(settings);Async e corrotinas#
Todo método async (…Async) tem uma versão em corrotina que recebe um callback, para código que não usa async/await.
// Every async method has a coroutine version with a callback
StartCoroutine(Majacloud.Leaderboards.GetTop("coins", 10, result =>
{
if (result.Ok) Debug.Log(result.Value.Total + " players");
}));Exemplo Starter#
Samples/Starter/Scenes/MajacloudStarter.unity tem cinco abas: Leaderboard, Cloud save, Rewards, Config e Account. Ela espera o conteúdo criado por Adicionar conteúdo de exemplo Starter.
Prefabs reutilizáveis em Samples/Starter/Prefabs: MajacloudLeaderboardView, MajacloudPlayerBadge e MajacloudDailyRewardButton. Arraste-os para a sua UI e defina o slug ou a chave da recompensa no Inspector.
WebGL e mobile#
- Sirva builds WebGL via HTTPS: os navegadores bloqueiam requisições
http://feitas a partir de páginashttps://. A API já envia os cabeçalhos CORS de que o WebGL precisa. - Os navegadores só abrem novas abas a partir de um clique. Para vincular contas no WebGL, inicie o fluxo antes e abra-o dentro do handler de um botão (veja Jogadores).
- Testar em um celular contra um servidor no seu computador também exige HTTPS (ou, apenas para desenvolvimento,
ALLOW_INSECURE_HTTPno servidor e downloads HTTP permitidos em Player Settings).
Menu do editor#
| Item de menu | O que faz |
|---|---|
Tools ▸ Majacloud ▸ Setup | Chaves, teste de conexão e configurações de comportamento. |
Tools ▸ Majacloud ▸ Open Starter Sample | Abre a cena Starter. |
Tools ▸ Majacloud ▸ Rebuild Starter Sample | Gera novamente a cena Starter e os prefabs. |
Tools ▸ Majacloud ▸ Export .unitypackage | Exporta o SDK como .unitypackage. |