Jump to content
Unity Insider Forum

DontDestroy


Mozart53
 Share

Recommended Posts

public class DontDestroy : MonoBehaviour
{
        private static DontDestroy singleton; //ein einzelnes
    private void Awake()
    {

        if(singleton == null)
        {
            singleton = this;
        }else if(singleton != this)
        {
            Destroy(gameObject);
        }
        
        DontDestroyOnLoad(gameObject);
    }
}

In dem Code geht es um eine Hintergrundmusik die nicht doppelt gesetzt werden soll wenn die selbe Szene auftaucht.

 

Ich versuche gerade zu verstehen und wollte mal fragen ob ich richtig liege. Beim ersten if statement setzte ich singleton als "das" Objekt. Beim else if sage ich wenn ich nicht genau das ist zerstöre ich es. Ist das so richtig?

Link to comment
Share on other sites

Kommt hin. Du darfst nicht vergessen, dass es hier darum geht, dass nach und nach mehrere Objekte diesen Code ausführen.

Das erste wird ankommen, merken dass die statische Variable den Wert "null" hat, und sich dann dort selbst eintragen.

Das zweite kommt an, sieht, dass die Variable bereits ein anderes Objekt referenziert, und zerstört sich daraufhin selbst. Das erste Objekt bleibt damit das einzige seiner Sorte.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...