2016-09-08 3 views
0

Scene 05, Scene 03, MEP_Desert, Snow_Scene_01, Demo. J'ai besoin de revenir à ces niveaux quand le joueur meurt. Quel code est de retour au niveau précédent que j'ai dans les paramètres de construction. J'ai besoin de faire une répétition de cela encore avec d'autres niveaux Comment ferais-je les autres scènes dans les paramètres de construction?Comment charger les niveaux précédents individuellement dans les paramètres de construction dans unity3d

Voici mon code:

{ 


    //---------------------------------------------------------------------------------------------------- 
    // Script describes/processes "Button" element of EasyGUI system 
    //---------------------------------------------------------------------------------------------------- 

    #pragma strict 
    @script AddComponentMenu ("EGUI/UI_Elements/Button") 
    import UnityEngine.SceneManagement; 

    public class EGUI_Button extends EGUI_Element {} 

    // List of built-in functionality types 
    public enum ButtonAction 
    { 
     None,     // Do nothing 
     Custom,    // Call function (name in callFunction) with parameter for actionRecipient object (this gameObject is default) 
     LoadLevel,   // Load level with index/name in parameter 
     RestartLevel,   // Restart current level 
     ExitGame,    // Close application 
     SetQuality,   // Set quality level according to parameter (Fastest, Fast, ... Fantastic) 
     DecQuality,   // Decrease quality level 
     IncQuality,   // Increase quality level 
     SetResolution,  // Set screen resolution according to parameter (1024x768, 1920x1080 ... etc) 
     OpenURL,    // Open URL specified in parameter 

     CloseEverything,  // Close/disable whole GUI manager and all related GUI-elements. 
     Resume,    // Close parent GUI-element and set time-scale to 1 
     ShowAnother,   // Show GUI-element specified in actionRecipient 
     ShowPrevious,   // Show previous GUI-element 
     HideThis,    // Hide parent GUI-element 
     HideThis_ShowAnother, // Hide parent GUI-element and show window specified in actionRecipient 
     HideThis_ShowPrevious, // Hide parent GUI-element and show previous window 

     SoundSwitch   // Enable/Disable all sounds in the scene 

    }; 


    var onClickAction: ButtonAction; // Action preset to perform onClick 
    var actionRecipient: GameObject; // Optional link to action recipient object 
    var callFunction: String;   // Optional name of custom function to call 
    var parameter: String;    // Optional parameter to send/use in the Action 


    //===================================================================================================== 
    // Overload parent OnClick function to Perform built-in actions 
    function OnClick() 
    { 
     super.OnClick(); 
     PerformAction(); 
    } 

    //---------------------------------------------------------------------------------------------------- 
    // Perform built-in actions according to selected type (onClickAction) 
    function PerformAction() 
    { 
     switch (onClickAction) 
     { 

      case ButtonAction.None: 
      ; 
      break; 


      case ButtonAction.Custom: 
       if(!actionRecipient) actionRecipient = gameObject; 
       if(parameter.Length > 0) actionRecipient.SendMessage (callFunction, parameter, SendMessageOptions.DontRequireReceiver); 
       else actionRecipient.SendMessage (callFunction, SendMessageOptions.DontRequireReceiver); 
      break; 


      case ButtonAction.LoadLevel: 
       Time.timeScale = 1; 
       try 
        SceneManager.LoadScene(int.Parse(parameter)); 
       catch(error) 
        SceneManager.LoadScene(parameter); 

       if (SceneManager.GetActiveScene().buildIndex > 2) // if not the first scene load the prvious scene 
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex - 4); 
       else 
        SceneManager.LoadScene(0); 
      break; 


      case ButtonAction.RestartLevel: 
       Time.timeScale = 1; 
       SceneManager.LoadScene(SceneManager.GetActiveScene().name); 
       break; 


      case ButtonAction.ExitGame: 


        Application.Quit(); 
      break; 


      case ButtonAction.SetQuality: 
       switch (parameter) 
       { 
        case "Fastest": 
        QualitySettings.SetQualityLevel(QualityLevel.Fastest); 
        break; 

        case "Fast": 
        QualitySettings.SetQualityLevel(QualityLevel.Fast); 
        break; 

        case "Simple": 
        QualitySettings.SetQualityLevel(QualityLevel.Simple); 
        break; 

        case "Good": 
        QualitySettings.SetQualityLevel(QualityLevel.Good); 
        break; 


        case "Beautiful": 
        QualitySettings.SetQualityLevel(QualityLevel.Beautiful); 
        break; 


        case "Fantastic": 
        QualitySettings.SetQualityLevel(QualityLevel.Fantastic); 
        break; 
       } 
      break; 


      case ButtonAction.IncQuality: 
       QualitySettings.IncreaseLevel(); 
      break; 


      case ButtonAction.DecQuality: 
       QualitySettings.DecreaseLevel(); 
      break; 


      case ButtonAction.SetResolution: 
      Screen.SetResolution (int.Parse(parameter.Substring(0,parameter.IndexOf("x"))), int.Parse(parameter.Substring(parameter.IndexOf("x")+1)), Screen.fullScreen); 
      break; 


      case ButtonAction.OpenURL: 
       Application.OpenURL(parameter); 
      break;    


      case ButtonAction.CloseEverything: 
       GetGUIManager().gameObject.SetActive(false); 
      break;                                                                  


      case ButtonAction.Resume: 
       Time.timeScale = 1; 
       transform.parent.gameObject.SendMessage("Disable"); 
      break; 


      case ButtonAction.ShowAnother: 
       if(actionRecipient) actionRecipient.GetComponent(EGUI_Element).SetActivation(true, transform.parent.gameObject); 
      break; 


      case ButtonAction.ShowPrevious: 
      if(senderObject) senderObject.SetActive(true); 
      break; 


      case ButtonAction.HideThis: 
       transform.parent.gameObject.SendMessage("Disable"); 
      break; 


      case ButtonAction.HideThis_ShowAnother: 
       if(actionRecipient) actionRecipient.GetComponent(EGUI_Element).SetActivation(true, transform.parent.gameObject); 
       transform.parent.gameObject.SendMessage("Disable"); 
      break; 


      case ButtonAction.HideThis_ShowPrevious: 
       if(senderObject) senderObject.SetActive(true); 
       transform.parent.gameObject.SendMessage("Disable"); 
      break; 


      case ButtonAction.SoundSwitch: 
       if(actionRecipient) actionRecipient.GetComponent(AudioListener).enabled = !actionRecipient.GetComponent(AudioListener).enabled; 
      break; 

     } 
    } 

    //---------------------------------------------------------------------------------------------------- 

} 
+0

clarifier votre problème un peu plus –

+0

Non. Lorsque le joueur meurt dans va dans la scène de redémarrage. Le code que j'ai mis pour revenir à la scène où meurt. – Freddy

+0

J'ai juste besoin de faire à nouveau avec le reste du niveau. Je n'ai qu'une seule scène de redémarrage dans mes paramètres de construction. – Freddy

Répondre

0

vous devez ajouter toutes vos scènes dans les paramètres de construction et utiliser application.loadlevel pour charger un niveau spécifique