Ricerca…


Definizioni del compilatore

Le definizioni del compilatore eseguono il codice specifico della piattaforma. Usandoli puoi fare piccole differenze tra varie piattaforme.

  • Trigger Game Center risultati su dispositivi Apple e risultati di google play su dispositivi Android.
  • Cambia le icone nei menu (logo windows in windows, pinguino Linux in Linux).
  • Possibilmente hanno una meccanica specifica della piattaforma a seconda della piattaforma.
  • E altro ancora...
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

}

Un elenco completo delle definizioni del compilatore Unity può essere trovato qui

Organizzazione di metodi specifici per piattaforma per classi parziali

Le classi parziali forniscono un modo pulito per separare la logica principale degli script dai metodi specifici della piattaforma.

Classi e metodi parziali sono contrassegnati con la parola chiave partial . Questo segnala al compilatore di lasciare la classe "aperta" e cercare altri file per il resto dell'implementazione.

// ExampleClass.cs
using UnityEngine;

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

    void OnEnable()
    {
        PlatformSpecificMethod();
    }
}

Ora possiamo creare file per gli script specifici della piattaforma che implementano il metodo parziale. I metodi parziali possono avere parametri (anche ref ) ma devono restituire 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

Se un metodo parziale non è implementato, il compilatore ometterà la chiamata.

Suggerimento: questo modello è utile quando si creano anche metodi specifici dell'editor.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow