Przykład który podałeś jest implementacją tzw. singletona. Czyli wzorca projektowego który pozwala na istnienie tylko jednej instancji obiektu. (Na scenie w Unity będzie maksymalnie jeden komponent MusciPlayer)
W tym przypadku "instance" jest statycznym obiektem, czyli jest powiązany z klasą a nie z danym obiektem. Dzięki temu może być wywołany z każdego miejsca. Kiedy tworzony jest nowy obiekt, to sprawdzane jest czy już jakiś obiekt tej klasy istnieje. Jeżeli tak, to nowy obiekt jest usuwany. Jeżeli nie, to nowy obiekt staje się jedyną instancją danej klasy.
Kod działa mniej więcej tak:
public class MusciPlayer : MonoBehaviour
{
static MusciPlayer instance = null; //Deklarujemy obiekt statyczny typu MusciPlayer
void Awake()
{
if (instance != null) //Czy istnieje jakaś instancja klasy MusciPlayer?
{
/// O nie! Istnieje już obiekt tego typu. Jako że może zostać tylko jeden, ten nowy
/// należy zniszczyć
Destroy(gameObject);
}
else
{
/// Nie ma żadnego obiektu tego typu! Więc jedyną instancją będzie nowo utworzony
/// obiekt :)
instance = this; //Przypisywanie nowego obiektu (definiujemy obiekt instance)
GameObject.DontDestroyOnLoad(gameObject);
}
}