0

场景 05,场景 03,MEP_Desert,Snow_Scene_01,演示。当玩家死亡时,我需要回到那些级别。什么代码回到了我在构建设置中的上一个级别。我需要在其他关卡中再次重复此操作我将如何在构建设置中执行其他场景?

这是我的代码:

{


    //----------------------------------------------------------------------------------------------------
    // 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; 

        }
    }

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

}
4

1 回答 1

0

您必须在构建设置中添加所有场景并使用application.loadlevel加载特定级别

于 2016-09-08T08:16:05.257 回答