Introduction
Afin de permettre le chargement de votre application et aussi d’avoir accès à L’API de Plateforme, il faut créer un build WebGL en utilisant le gabarit WebGL fourni dans le package ci-dessous :
Ce gabarit met en place les diverses fonctions JavaScript qui seront appelées par la Plateforme. Ces fonctions feront le pont entre la Plateforme et le code C# de votre projet Unity.
En plus du gabarit, vous devez vous assurer que le prefab PlateformeClient (dans le dossier Assets/Plateforme) soit importé dans votre projet et actif dans vos scènes. Il suffit de l'inclure dans une seule scène (menu par exemple) pour qu'il existe dans toutes vos scènes. Ce dernier vous donne accès à l'API de Plateforme en plus de recevoir les appels de fonction de cette dernière. Il est disponible sous forme de package ci-dessous.
Télécharger le client : plateforme.client.1.6.3.unitypackage
Télécharger le gabarit : plateforme.gabarit.1.6.3.unitypackage
L'API de Plateforme
Voici la liste des propriétés et fonctions disponibles pour intégrer votre application. Il est possible que certains appels spécifique à la Plateforme génèrent des erreurs lorsque testés dans l'éditeur. Afin de corriger l'erreur, il suffit d'englober l'appel par une validation de la plateforme WebGL comme dans l'exemple suivant :
//Exemple de validation de la plateforme WebGL dans votre application
private void Start()
{
//Valide si on est en WebGL avant d'appeler une fonction externe
if (Application.platform == RuntimePlatform.WebGLPlayer)
{
PlateformeClient.InitGame();
}
}
Propriétés
PlateformeClient.SoundMuteState
Retourne vrai (true) si les sons de l’application doivent être muets. Autrement, retourne faux (false)
public static bool SoundMuteState
« Peut être utile si vous voulez savoir l'état du son en cours dans l'application Plateforme. Ceci vous permet, entre autres, de couper ou activer les divers AudioSource dans une scène de votre application. »
Fonctions
PlateformeClient.InitApp()
Demande l'initialisation de votre application par Plateforme
public static void InitApp
« Si cette fonction n’est pas appelée dans votre application, une erreur sera soulevée. Il est nécessaire d’appeler cette fonction afin de pouvoir lancer correctement l’application. Normalement cette fonction est appelée à la fin de la fonction déléguée InitPlateformeApp »
PlateformeClient.InitGame()
Permet de lancer l'initialisation d’une partie par Plateforme. Chaque lancement de partie doit être précédé de cet appel
public static void InitGame
« Appeler cette fonction signifie le début d’une partie. Permet de tenir les statistiques pour le jeu. Normalement, cette fonction pourrait être appelée dans la fonction Start/Awake de votre scène de jeu. »
PlateformeClient.SaveHighscore(int highscore)
Permet de sauvegarder le pointage d’une partie pour l’application
public static void SaveHighscore
int highscore : Le pointage à sauvegarder
« Appeler cette fonction dans votre code fait apparaitre une fenêtre de saisie des initiales. Cette fenêtre est gérée par Plateforme. Le mode plein-écran est désactivé par cet appel. »
PlateformeClient.GetHighscores()
Affiche la fenêtre des classements pour l’application en cours
public static void GetHighscores
« Appeler cette fonction dans votre code fait apparaitre une fenêtre des classements. Cette fenêtre est gérée par Plateforme. Le mode plein-écran est désactivé par cet appel. »
PlateformeClient.Restart()
Permet de relancer le chargement de votre application
public static void Restart
« Appeler cette fonction dans votre code relance le chargement de l’application par Plateforme. Utile pour permettre de rejouer après la fin d’une partie. Comme toute l’application est rechargée à nouveau, c’est plus simple que de réinitialiser les différentes valeurs et variables dans votre code. Toutefois, il est tout de même possible de redémarrer le jeu par vous-même. Il suffira de s’assurer que la fonction plateformeClient.InitGame() soit appelée dans votre code lorsque la partie redémarre. »
PlateformeClient.Close()
Permet de fermer la fenêtre de votre application
public static void Close
« Appeler cette fonction dans votre code ferme la fenêtre de l’application au même titre que le bouton de contrôle déjà présent dans l'interface. »
PlateformeClient.FullscreenSwitch(bool fullscreenState = true)
Permet d'activer (true) ou de désactiver (false) le mode plein-écran pour la fenêtre de votre application
public static void FullscreenSwitch
bool fullscreenState : L'état actif du mode plein-écran
« Appeler cette fonction dans votre code active ou désactive le plein-écran. La touche ECHAP (escape) permettra toujours de quitter le mode plein-écran et est controllée par le navigateur. »
Fonctions appelées par Plateforme
Voici la liste des fonctions qui seront appelées automatiquement par Plateforme. Elles se retrouvent dans le script PlateformeClient.cs
PlateformeClient.InitPlateformeApp()
Cette fonction est appelée lorsque le chargement de l’application s'est terminé correctement sur le Plateforme. C’est le point d’entrée de votre application.
delegate void InitPlateformeApp
« Afin de savoir quand cette fonction est appelée, vous devez vous y inscrire/désinscrire »
Exemple
//Exemple d'utilisation de la fonction dans votre application
private void Awake()
{
PlateformeClient.InitPlateformeApp += OnInitPlateformeApp;
}
///L'appel de cette fonction confirme que Plateforme a bien chargé notre application
private void OnInitPlateformeApp()
{
//l'application est bien chargée! On se désinscrit
PlateformeClient.InitPlateformeApp -= OnInitPlateformeApp;
//On initialise l'application
PlateformeClient.InitApp();
//...autre code...
}
PlateformeClient.SoundChange(bool muteState)
Fonction appelée lorsque l’utilisateur clique sur le bouton de Plateforme (
) permettant de couper ou rétablir le son. Cette fonction vous permet donc de savoir quand couper/activer les sons dans votre application.
delegate void SoundChange
bool muteState : Le son doit-il être muet (true) ou activé (false)?
« Afin de savoir quand cette fonction est appelée, vous devez vous y inscrire/désinscrire »
Exemple
//Exemple d'utilisation de la fonction dans votre application
private void Start()
{
//...
PlateformeClient.SoundChange += OnSoundChange;
}
///Appelée lorsque l'utilisateur coupe ou active le son de la Plateforme
private void OnSoundChange(bool muteState)
{
//on trouve tous les AudioSource dans la scène
AudioSource[] allSounds = GameObject.FindObjectsOfType<AudioSource>();
foreach (AudioSource source in allSounds)
{
//on affecte leur état muet avec le valeur reçue de la Plateforme
source.mute = muteState;
}
}
///Il faut toujours s'assurer de se désincrire d'un delegate
///afin d'éviter des problèmes de fuite de mémoire.
private void OnDestroy(){
PlateformeClient.SoundChange -= OnSoundChange;
}