// plicflix para Unity WebGL — a ponte entre o C# (Plicflix.cs) e o SDK do navegador. // Ponha este arquivo em Assets/Plugins/WebGL/Plicflix.jslib. // O SDK (plicflix.js) precisa estar na página: no seu template WebGL // (Assets/WebGLTemplates//index.html) acrescente // e copie o plicflix.js para a mesma pasta. Guia: https://developers.plicflix.com/docs/MOTORES mergeInto(LibraryManager.library, { PlicflixDentro: function () { return window.Plicflix && window.Plicflix.dentro() ? 1 : 0; }, PlicflixProgresso: function (pct, texto) { if (window.Plicflix) Plicflix.progresso(pct, UTF8ToString(texto)); }, PlicflixPronto: function () { if (window.Plicflix) Plicflix.pronto(); }, PlicflixErro: function (texto) { if (window.Plicflix) Plicflix.erro(UTF8ToString(texto)); }, PlicflixOnde: function (json) { if (!window.Plicflix) return; try { Plicflix.onde(JSON.parse(UTF8ToString(json))); } catch (e) { console.warn("plicflix: onde com JSON inválido", e); } }, PlicflixAbrirAmigos: function () { if (window.Plicflix) Plicflix.abrirAmigos(); }, PlicflixSair: function () { if (window.Plicflix) Plicflix.sair(); }, // entrar: o SEU servidor troca o token. Resposta em .AoEntrar(json) ou .AoFalharEntrada(erro) PlicflixEntrar: function (url, objeto) { var u = UTF8ToString(url), o = UTF8ToString(objeto); if (!window.Plicflix) { SendMessage(o, "AoFalharEntrada", "plicflix.js não carregado"); return; } Plicflix.entrar(u).then( function (r) { SendMessage(o, "AoEntrar", JSON.stringify(r)); }, function (e) { SendMessage(o, "AoFalharEntrada", String((e && e.message) || e)); } ); }, // jogo sem servidor: .AoReceberJogador(json) ou .AoFalharEntrada(erro) PlicflixJogador: function (objeto) { var o = UTF8ToString(objeto); if (!window.Plicflix) { SendMessage(o, "AoFalharEntrada", "plicflix.js não carregado"); return; } Plicflix.jogador().then( function (r) { SendMessage(o, "AoReceberJogador", JSON.stringify(r)); }, function (e) { SendMessage(o, "AoFalharEntrada", String((e && e.message) || e)); } ); }, // aoSair: chama .AoSair(); o C# salva e chama PlicflixSaiuPronto() (ou passam 4,5 s) PlicflixAoSair: function (objeto) { var o = UTF8ToString(objeto); if (!window.Plicflix) return; Plicflix.aoSair(function () { return new Promise(function (pronto) { window.__plicflixSaiu = pronto; SendMessage(o, "AoSair"); setTimeout(pronto, 4500); }); }); }, PlicflixSaiuPronto: function () { if (window.__plicflixSaiu) window.__plicflixSaiu(); }, // aoIrPara: chama .AoIrPara(json do destino); o C# responde com PlicflixFoiPara(ok, motivo) PlicflixAoIrPara: function (objeto) { var o = UTF8ToString(objeto); if (!window.Plicflix) return; Plicflix.aoIrPara(function (destino) { return new Promise(function (responder) { window.__plicflixFoi = responder; SendMessage(o, "AoIrPara", JSON.stringify(destino || {})); setTimeout(function () { responder({ ok: false, motivo: "O jogo não respondeu." }); }, 8000); }); }); }, PlicflixFoiPara: function (ok, motivo) { if (window.__plicflixFoi) window.__plicflixFoi({ ok: !!ok, motivo: UTF8ToString(motivo) }); }, });