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;
}
}
//----------------------------------------------------------------------------------------------------
}
clarifier votre problème un peu plus –
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
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