Soms één object project breed beschikbaar maken, zoals:
Dan gebruik je een Singleton: een design pattern waarbij maar één instantie van een class bestaat — en deze overal toegankelijk is via ClassNaam.Instance.
Unity werkt met MonoBehaviour, en je kunt geen constructor gebruiken zoals in gewone C#. Daarom gebruiken we een aangepaste versie van het Singleton-patroon
static InstanceMaak een public static variabele van je eigen class:
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
}
Awake()In Unity gebruiken we Awake() om te checken of de instantie al bestaat.
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
void Awake()
{
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(gameObject); // Blijf bestaan tussen scenes
}
else
{
Destroy(gameObject); // Verwijder duplicaten
}
}