Zoeken…


Compiler Definities

Compilerdefinities voeren platformspecifieke code uit. Hiermee kunt u kleine verschillen tussen verschillende platforms maken.

  • Trigger Game Center-prestaties op Apple-apparaten en Google Play-prestaties op Android-apparaten.
  • Wijzig de pictogrammen in menu's (Windows-logo in Windows, Linux-pinguïn in Linux).
  • Mogelijk platformspecifieke mechanica, afhankelijk van het platform.
  • En nog veel meer...
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

}

Een complete lijst met Unity-compilerdefinities is hier te vinden

Platformspecifieke methoden organiseren voor deelklassen

Gedeeltelijke klassen bieden een schone manier om de kernlogica van uw scripts te scheiden van platformspecifieke methoden.

Gedeeltelijke klassen en methoden worden gemarkeerd met het trefwoord partial . Dit geeft de compiler aan om de klasse "open" te laten en in andere bestanden te zoeken voor de rest van de implementatie.

// ExampleClass.cs
using UnityEngine;

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

    void OnEnable()
    {
        PlatformSpecificMethod();
    }
}

Nu kunnen we bestanden maken voor onze platformspecifieke scripts die de gedeeltelijke methode implementeren. Gedeeltelijke methoden kunnen parameters hebben (ook ref ), maar moeten 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

Als een gedeeltelijke methode niet wordt geïmplementeerd, laat de compiler de oproep achterwege.

Tip: dit patroon is ook handig bij het maken van Editor-specifieke methoden.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow