gml_pragma(command, [optional...]);
| Argument | La description |
|---|---|
| command | Une chaîne avec l'une des commandes listées ci-dessous. |
| [optional] | Certaines des commandes disponibles nécessitent un argument ou des arguments facultatifs. Ceux-ci sont expliqués ci-dessous pour chaque commande. |
Retours: N / A
le gml_pragma La fonction affecte la manière dont la cible YYC compile votre code et doit être appelée avec les différentes commandes pour optimiser davantage la compilation finale de votre projet. Ces commandes sont effectivement pré-traitées avant la compilation du jeu et donc la fonction peut être placée n'importe où dans votre projet et elle sera encore traitée avant que le jeu soit entièrement compilé. Les commandes disponibles sont les suivantes:
- " forceinline " - Lorsque la fonction est appelée avec le pragma "forceinline" dans une ressource de script, YYC compile le projet avec le script en ligne, plutôt que référencé. Cela donnera un coup de pouce supplémentaire au traitement, mais il faut prendre soin de l'utiliser car cela augmentera également la taille du fichier exécutable final, surtout si le code intégré est grand et / ou utilisé dans plusieurs endroits différents, et augmentera considérablement le temps de compilation.
- " global ", " [gml code] " - Le pragma "global" vous permet d'appeler du code GML avant tout et exécutera la deuxième chaîne GML à une portée globale, avant que la première salle du jeu ne s'exécute. Par exemple:
gml_pragma("global", "scr_Init()");
Cela appellera le script "scr_Init" avant que la première salle du jeu ne soit lancée.- " PNGCrush " - Le pragma "PNGCrush" utilisera le programme PNGCrush sur chaque texture créée. Notez que cela peut augmenter considérablement le temps nécessaire pour compiler le jeu, donc vous ne le voulez pas tout le temps, bien qu'il puisse faire des économies significatives sur la taille finale du fichier.
- " Texgroup.Scale ", " [TextureGroupName] ", " [Scale Divisor] " - "Texgroup.Scale" met à l'échelle le groupe de texture donné lors de la compilation. Vous devez donner deux arguments supplémentaires ici: le "[TexGroupName]", qui est le nom (une chaîne) du groupe de texture à redimensionner, et le "[Scale Divisor]" (également une chaîne), qui est le diviseur vous souhaitez utiliser pour la mise à l'échelle, c'est-à-dire:
gml_pragma("Texgroup.Scale", "level1", "2");
Ce sera la moitié de toutes les textures dans le groupe de texture "level1".- " UnityBuild ", " [enable / disable] " - Si vous appelez la fonction avec ce pragma et paramétrez l'argument enable / disable sur true puis, lors de la compilation, tous les fichiers.cpp du projet seront réduits en un seul fichier, qu'il utilisera ensuite pour tout construire, par exemple:
gml_pragma("UnityBuild", "true");
L'avantage de construire une unité est que les builds sont plus rapides mais l'inconvénient est qu'elle fait une build complète à chaque fois, donc même si vous changez une seule partie du code, elle reconstruira tout sans utiliser de fichiers en cache. Cela a été ajouté spécifiquement pour l'exportation Xbox One en utilisant le YYC, bien qu'il puisse être appelé pour d'autres versions. Pour plus d'informations sur les builds d'unité, s'il vous plaît voir ici.
gml_pragma("forceinline");
L'exemple de code ci-dessus forcera le script où il est utilisé à être aligné lors de la compilation.