Unity Platformuna Özel Derleme
Unity geliştiricilerin yalnızca belirli bir platform için derlemeye dahil edilecek kodu yazmasına olanak tanıyan platforma özgü bir derleme özelliği sağlar. Bu özellik, platforma özel kod yazmak veya belirli platformlar için gereksiz kodları hariç tutarak yapıları optimize etmek yapmak gerektiğinde kullanışlıdır.
Platforma Özel Derleme Nasıl Kullanılır
Unity'de platforma özel derlemeyi kullanmak için önişlemci direktiflerini kullanın. Önişlemci direktifleri, derleyiciye gerçek derleme işleminden önce yürütülen özel talimatlardır. Bu yönergeler, hedef platforma göre kodu şartlı dahil etmek veya hariç tutmak için kullanılabilir.
Unity:'de platforma özel derlemenin nasıl kullanılacağına dair bir örnek:
#if UNITY_IOS
// iOS-specific code
// This code will only be included in the build for iOS
#elif UNITY_ANDROID
// Android-specific code
// This code will only be included in the build for Android
#else
// Code for other platforms
// This code will be included in the build for all other platforms
#endif
Bu örnekte 'UNITY_IOS' ve 'UNITY_ANDROID' direktifleri Unity tarafından sağlanmıştır ve iOS ve Android platformları için koşullu olarak kod derlemek için kullanılabilir, sırasıyla. 'UNITY_EDITOR' (Unity Düzenleyici için), 'UNITY_STANDALONE' (bağımsız yapılar için), 'UNITY_WEBGL' gibi platforma özgü diğer mevcut yönergeler kullanılabilir. (WebGL yapıları için) ve daha fazlası.
#if UNITY_EDITOR
// Editor-specific code
// This code will only be included when running in the Unity Editor
using UnityEditor;
#elif UNITY_STANDALONE
// Standalone build-specific code
// This code will only be included when building for standalone platforms (Windows, macOS, Linux)
#elif UNITY_WEBGL
// WebGL-specific code
// This code will only be included when building for WebGL
using UnityEngine.Networking;
#endif
// Shared code that will be included in all builds
public class MyScript : MonoBehaviour
{
private void Start()
{
#if UNITY_EDITOR
Debug.Log("Running in Unity Editor");
#elif UNITY_STANDALONE
Debug.Log("Running in standalone build");
#elif UNITY_WEBGL
Debug.Log("Running in WebGL build");
#endif
}
}
Çözüm
Geliştiriciler, platforma özel derlemeyi kullanarak her platform'ün özelliklerinden ve yeteneklerinden yararlanan kod yazabilir, aynı zamanda kod tabanını Unity'deki farklı hedef platformlar için düzenli ve optimize edilmiş halde tutabilir.