Estoy usando Unity 3 para construir mi juego. Tengo un botón de GUI básico que, cuando se hace clic, me gustaría que el usuario fuera llevado a un nivel aleatorio. Hay 10 niveles en mi juego. A continuación se muestra una copia del código que estoy tratando de implementar.
function OnGUI() { // Make a background box GUI.Box(Rect(10, 10, 100, 90), "Oracle"); if (GUI.Button(Rect(20, 40, 80, 20), 9)) ; { Application.LoadLevel(Random.Range(0, 9)); } }No está sucediendo. También he intentado:
function OnGUI() { // Make a background box GUI.Box(Rect(10, 10, 100, 90), "Oracle"); if (GUI.Button(Rect(20, 40, 80, 20))) ; { Application.LoadLevel(Random.Range(0, Application.levelCount 9)); } }Nunca antes había usado la función Random.Range y estaba algo confundido con el formato adecuado.
También tengo EZ GUI disponible y me preguntaba si podría ingresar el script de rango aleatorio correcto en el menú desplegable 'script' o el menú desplegable 'script with method', ya que prefiero usar un botón personalizado. Cualquier ayuda sería muy apreciada.
Aquí está el código que funcionó. Reconstruiré y agregaré algunos niveles más. Probaré directamente desde los documentos de Unity y veré si la escena aleatoria se carga solo con la cantidad de escenas en la compilación. Gracias DigitalD
static var levelCount : int; function OnGUI () { // Make a background box GUI.Box (Rect (10,10,100,90), "ORACLE"); if (GUI.Button (Rect (20,40,80,20), "Genie")) { Application.LoadLevel (Random.Range(0, Application.levelCount-5)); } }El código de ejemplo de los documentos de Unity debería funcionar bien. "Application.LoadLevel(Random.Range(0, Application.levelCount))" cargará una escena aleatoria. Los números de nivel se basan en el orden en la configuración de construcción. ¿Es posible que hayas olvidado incluirlos en la compilación? Tener 10 escenas no es suficiente, se eliminarán si no se incluyen en la compilación.