I’m confused about the need for checking the instance ID when the member it’s checking is static and should be the same object anyways. If someone could walk me through it, I’d appreciate it.
using UnityEngine;
using System.Collections;
public class GameManager : MonoBehaviour
{
//C# property to retrieve currently active instance of object, if any.
public static GameManager Instance
{
get
{
if (instance == null)
{
//Create game manager object if required.
instance = new GameObject("GameManager").AddComponent<GameManager>();
}
return instance;
}
}
//This recursive definition is a bit confusing to me.
private static GameManager instance = null;
//Called before Start() on object creation.
void Awake()
{
//Not understanding the need to check for a different instance of
//GameManager since it's static anyways.
if ((instance) && (instance.GetInstanceID () != GetInstanceID ()))
{
DestroyImmediate (gameObject); //Delete duplicate
}
else
{
instance = this; //Make this object the only instance.
DontDestroyOnLoad (gameObject); //Set as do not destory.
}
}
}