Recherche…


Définitions du compilateur

Les définitions du compilateur exécutent un code spécifique à la plate-forme. En les utilisant, vous pouvez faire de petites différences entre les différentes plates-formes.

  • Déclenchez les réalisations de Game Center sur les appareils Apple et les performances de Google Play sur les appareils Android.
  • Changer les icônes dans les menus (logo Windows dans Windows, Linux pingouin dans Linux).
  • Possiblement avoir une mécanique spécifique à la plate-forme en fonction de la plate-forme.
  • Et beaucoup plus...
void Update(){ 

#if UNITY_IPHONE
    //code here is only called when running on iPhone
#endif

#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
    //code here is only ran in a unity game running on windows outside of the editor
#endif

//other code that will be ran regardless of platform

}

Une liste complète des définitions du compilateur Unity peut être trouvée ici

Organisation des méthodes spécifiques de la plate-forme aux classes partielles

Les classes partielles permettent de séparer la logique de base de vos scripts des méthodes spécifiques à la plate-forme.

Les classes et méthodes partielles sont marquées avec le mot-clé partial . Cela signale au compilateur de laisser la classe "open" et de regarder dans les autres fichiers pour le reste de l'implémentation.

// ExampleClass.cs
using UnityEngine;

public partial class ExampleClass : MonoBehaviour
{
    partial void PlatformSpecificMethod();

    void OnEnable()
    {
        PlatformSpecificMethod();
    }
}

Nous pouvons maintenant créer des fichiers pour nos scripts spécifiques à la plate-forme qui implémentent la méthode partielle. Les méthodes partielles peuvent avoir des paramètres (également ref ) mais doivent renvoyer void .

// ExampleClass.Iphone.cs

#if UNITY_IPHONE
using UnityEngine;

public partial class ExampleClass
{
    partial void PlatformSpecificMethod()
    {
        Debug.Log("I am an iPhone");
    }
}
#endif
// ExampleClass.Android.cs

#if UNITY_ANDROID
using UnityEngine;

public partial class ExampleClass
{
    partial void PlatformSpecificMethod()
    {
        Debug.Log("I am an Android");
    }
}
#endif

Si une méthode partielle n'est pas implémentée, le compilateur omettra l'appel.

Astuce: Ce modèle est utile lors de la création de méthodes spécifiques à l'éditeur.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow