Du möchtest also auf jeden Fall immer 20 Sekunden, nachdem die Startszene geladen wurde die Menüszene laden, oder?
Dazu würdest du dann in der Startszene das gewünschte Script (z.B. "MenuLoader") an ein beliebiges Objekt hängen (wobei ich empfehlen würde, das Objekt so zu nennen, wie das Script heisst, in dem Fall also auch MenuLoader).
Bei der Implementierung von MenuLoader hast du dann in der Methode Awake() oder Start() (Start() finde ich in dem Fall geeigneter, funktioniert aber beides) einen Aufruf StartCoroutine(LoadLevelDelayed()); ... wobei "LoadLevelDelayed()" wieder ein beliebiger Methodenname ist. Das kann also auch anders heissen, wenn dir das lieber ist.
Bei der Implementierung von LoadLevelDelayed() ist dann wichtig, dass der Rückgabetyp ein IEnumerator ist, also public IEnumerator LoadLevelDelayed() { ... }.
Und in dieser Methode hast du dann deinen Aufruf "Application.LoadLevel(1);" ... der ist an sich korrekt. Ich persönlich finde es lesbarer, den Level über den Namen zu laden. Das hat auch den Vorteil, dass du dann keine Probleme bekommst, wenn du z.B. noch einen zusätzlichen Startlevel davor hängst. Aber das kann auch Nachteile haben - ist also eher Geschmacksfrage.
|