unity3d
Multiplattform-Entwicklung
Suche…
Compiler-Definitionen
Compiler-Definitionen führen plattformspezifischen Code aus. Mit ihnen können Sie kleine Unterschiede zwischen verschiedenen Plattformen machen.
- Trigger Game Center-Erfolge auf Apple-Geräten und Google Play-Erfolge auf Android-Geräten.
- Ändern Sie die Symbole in Menüs (Windows-Logo in Windows, Linux-Pinguin in Linux).
- Eventuell plattformspezifische Mechanik je nach Plattform.
- Und vieles mehr...
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
}
Eine vollständige Liste der Unity-Compiler-Definitionen finden Sie hier
Plattformspezifische Methoden für Teilklassen organisieren
Teilklassen bieten eine saubere Möglichkeit, die Kernlogik Ihrer Skripts von plattformspezifischen Methoden zu trennen.
Partielle Klassen und Methoden werden mit dem Schlüsselwort partial
markiert. Dies signalisiert dem Compiler, die Klasse "open" zu lassen und den Rest der Implementierung in anderen Dateien zu suchen.
// ExampleClass.cs
using UnityEngine;
public partial class ExampleClass : MonoBehaviour
{
partial void PlatformSpecificMethod();
void OnEnable()
{
PlatformSpecificMethod();
}
}
Jetzt können wir Dateien für unsere plattformspezifischen Skripts erstellen, die die Teilmethode implementieren. Partielle Methoden können Parameter haben (auch ref
), müssen aber 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
Wenn keine Teilmethode implementiert ist, lässt der Compiler den Aufruf aus.
Tipp: Dieses Muster ist auch hilfreich, wenn Sie Editor-spezifische Methoden erstellen.