x


restart button

i have this script On gui function, and it doesnt work: Application.LoadLevel(mylevel)

it freezes when i click, any suggestions?

more ▼

asked Aug 18 '12 at 09:34 AM

lasha_an gravatar image

lasha_an
22 1 6 17

This is kind of thin for a presentation of your problem, could you give us the code around this call ? Where is this line ? In an Update method ? OnGUIMethod ?

Aug 18 '12 at 12:20 PM KiraSensei
(comments are locked)
10|3000 characters needed characters left

4 answers: sort voted first

There is full script

function PauseMenu() {
    BeginPage(400,200);
    if (GUILayout.Button (IsBeginning() ? "Play" : "Continue")) {
        UnPauseGame();

    }
    if (GUILayout.Button ("Options")) {
        currentPage = Page.Options;
    }
    if (GUILayout.Button ("Credits")) {
        currentPage = Page.Credits;
    }
    if (GUILayout.Button ("Restart")) {
        Application.LoadLevel(0);
    }
    if (GUILayout.Button ("Quit")) {
        Application.Quit();
    }
    EndPage();
}
more ▼

answered Aug 18 '12 at 03:06 PM

lasha_an gravatar image

lasha_an
22 1 6 17

(comments are locked)
10|3000 characters needed characters left

To restart your level, you could use Application.loadedLevel.

So inside RestartButton, would be

Application.LoadLevel(Application.loadedLevel);
more ▼

answered Aug 18 '12 at 03:17 PM

J.D. gravatar image

J.D.
116 1 2

it doesnt work. i tried this too...

Aug 18 '12 at 03:20 PM lasha_an

Are all your GUI functions are insie OnGUI() method?

You should do this:

void OnGUI(){

//put your GUI Layout buttons here //be aware of the case sensitive OnGUI, not OnGui

}

Aug 18 '12 at 03:27 PM J.D.
(comments are locked)
10|3000 characters needed characters left
var skin:GUISkin;
var levelToLoad : String;

private var gldepth = -0.5;
private var startTime = 0.1;

var mat:Material;

private var tris = 0;
private var verts = 0;
private var savedTimeScale:float;
private var pauseFilter;

private var showfps:boolean;
private var showtris:boolean;
private var showvtx:boolean;
private var showfpsgraph:boolean;

var lowFPSColor = Color.red;
var highFPSColor = Color.green;

var lowFPS = 30;
var highFPS = 50;

var start:GameObject;

var url = "unity.html";

var statColor:Color = Color.yellow;

var credits:String[]=[
    "A Fugu Games Production",
    "Programming by Phil Chu",
    "Fugu logo by Shane Nakamura Designs",
    "Copyright (c) 2007-2008 Technicat, LLC"] ;
var crediticons:Texture[];

enum Page {
    None,Main,Options,Credits
}

private var currentPage:Page;

private var fpsarray:int[];
private var fps:float;



function OnPostRender() {
    if (showfpsgraph && mat != null) {
        GL.PushMatrix ();
        GL.LoadPixelMatrix();
        for (var i = 0; i < mat.passCount; ++i)
        {
            mat.SetPass(i);
            GL.Begin( GL.LINES );
            for (var x=0; x<fpsarray.length; ++x) {
                GL.Vertex3(x,fpsarray[x],gldepth);
            }
        GL.End();
        }
        GL.PopMatrix();
        ScrollFPS();
    }
}

function ScrollFPS() {
    for (var x=1; x<fpsarray.length; ++x) {
        fpsarray[x-1]=fpsarray[x];
    }
    if (fps < 1000) {
        fpsarray[fpsarray.length-1]=fps;
    }
}

static function IsDashboard() {
    return Application.platform == RuntimePlatform.OSXDashboardPlayer;
}

static function IsBrowser() {
    return (Application.platform == RuntimePlatform.WindowsWebPlayer ||
        Application.platform == RuntimePlatform.OSXWebPlayer);
}

function LateUpdate () {
    if (showfps || showfpsgraph) {
        FPSUpdate();
    }
    if (Input.GetKeyDown("escape")) {
        switch (currentPage) {
            case Page.None: PauseGame(); break;
            case Page.Main: if (!IsBeginning()) UnPauseGame(); break;
            default: currentPage = Page.Main;
        }
    }
}

function OnGUI () {
    if (skin != null) {
        GUI.skin = skin;
    }
    ShowStatNums();
    ShowLegal();
    if (IsGamePaused()) {
        GUI.color = statColor;
        switch (currentPage) {
            case Page.Main: PauseMenu(); break;
            case Page.Options: ShowToolbar(); break;
            case Page.Credits: ShowCredits(); break;
        }
    }   
}

function ShowLegal() {
    if (!IsLegal()) {
        GUI.Label(Rect(Screen.width-100,Screen.height-20,90,20),
        "fugugames.com");
    }
}

function IsLegal() {
    return !IsBrowser() || 
    Application.absoluteURL.StartsWith("http://www.fugugames.com/") ||
    Application.absoluteURL.StartsWith("http://fugugames.com/");
}

private var toolbarInt:int=0;
private var toolbarStrings: String[]= ["Audio","Graphics","Stats","System"];

function ShowToolbar() {
    BeginPage(300,300);
    toolbarInt = GUILayout.Toolbar (toolbarInt, toolbarStrings);
    switch (toolbarInt) {
        case 0: VolumeControl(); break;
        case 3: ShowDevice(); break;
        case 1: Qualities(); QualityControl(); break;
        case 2: StatControl(); break;
    }
    EndPage();
}

function ShowCredits() {
    BeginPage(300,300);
    for (var credit in credits) {
        GUILayout.Label(credit);
    }
    for (var credit in crediticons) {
        GUILayout.Label(credit);
    }
    EndPage();
}

function ShowBackButton() {
    if (GUI.Button(Rect(20,Screen.height-50,50,20),"Back")) {
        currentPage = Page.Main;
    }
}


function ShowDevice() {
    GUILayout.Label ("Unity player version "+Application.unityVersion);
    GUILayout.Label("Graphics: "+SystemInfo.graphicsDeviceName+" "+
    SystemInfo.graphicsMemorySize+"MB\n"+
    SystemInfo.graphicsDeviceVersion+"\n"+
    SystemInfo.graphicsDeviceVendor);
    GUILayout.Label("Shadows: "+SystemInfo.supportsShadows);
    GUILayout.Label("Image Effects: "+SystemInfo.supportsImageEffects);
    GUILayout.Label("Render Textures: "+SystemInfo.supportsRenderTextures);
}

function Qualities() {
        GUILayout.Label(QualitySettings.names[QualitySettings.GetQualityLevel()]);
}

function QualityControl() {
    GUILayout.BeginHorizontal();
    if (GUILayout.Button("Decrease")) {
        QualitySettings.DecreaseLevel();
    }
    if (GUILayout.Button("Increase")) {
        QualitySettings.IncreaseLevel();
    }
    GUILayout.EndHorizontal();
}

function VolumeControl() {
    GUILayout.Label("Volume");
    AudioListener.volume = GUILayout.HorizontalSlider(AudioListener.volume,0.0,1.0);
}

function StatControl() {
    GUILayout.BeginHorizontal();
    showfps = GUILayout.Toggle(showfps,"FPS");
    showtris = GUILayout.Toggle(showtris,"Triangles");
    showvtx = GUILayout.Toggle(showvtx,"Vertices");
    showfpsgraph = GUILayout.Toggle(showfpsgraph,"FPS Graph");
    GUILayout.EndHorizontal();
}

function FPSUpdate() {
    var delta = Time.smoothDeltaTime;
        if (!IsGamePaused() && delta !=0.0) {
            fps = 1 / delta;
        }
}

function ShowStatNums() {
    GUILayout.BeginArea(Rect(Screen.width-100,10,100,200));
    if (showfps) {
        var fpsString= fps.ToString ("#,##0 fps");
        GUI.color = Color.Lerp(lowFPSColor, highFPSColor,(fps-lowFPS)/(highFPS-lowFPS));
        GUILayout.Label (fpsString);
    }
    if (showtris || showvtx) {
        GetObjectStats();
        GUI.color = statColor;
    }
    if (showtris) {
        GUILayout.Label (tris+"tri");
    }
    if (showvtx) {
        GUILayout.Label (verts+"vtx");
    }
    GUILayout.EndArea();
}

function BeginPage(width,height) {
    GUILayout.BeginArea(Rect((Screen.width-width)/2,(Screen.height-height)/2,width,height));
}

function EndPage() {
    GUILayout.EndArea();
    if (currentPage != Page.Main) {
        ShowBackButton();
    }
}

function IsBeginning() {
    return Time.time < startTime;
}

function PauseMenu() {
    BeginPage(400,200);
    if (GUILayout.Button (IsBeginning() ? "Play" : "Continue")) {
        UnPauseGame();

    }
    if (GUILayout.Button ("Options")) {
        currentPage = Page.Options;
    }
    if (GUILayout.Button ("Credits")) {
        currentPage = Page.Credits;
    }
    if (GUILayout.Button ("Restart")) {
        Application.LoadLevel(Application.loadedLevel);
    }
    if (GUILayout.Button ("Quit")) {
        Application.Quit();
    }
    EndPage();
}

function GetObjectStats() {
    verts = 0;
    tris = 0;
    var ob = FindObjectsOfType(GameObject);
    for (var obj in ob) {
        GetObjectStats(obj);
    }
}

function GetObjectStats(object) {
    var filters : Component[];
    filters = object.GetComponentsInChildren(MeshFilter);
    for( var f : MeshFilter in filters )
    {
        tris += f.sharedMesh.triangles.Length/3;
        verts += f.sharedMesh.vertexCount;
    }
}

function PauseGame() {
    savedTimeScale = Time.timeScale;
    Time.timeScale = 0;
    AudioListener.pause = true;
    if (pauseFilter) pauseFilter.enabled = true;
    currentPage = Page.Main;
}

function UnPauseGame() {
    Time.timeScale = savedTimeScale;
    AudioListener.pause = false;
    if (pauseFilter) pauseFilter.enabled = false;
    currentPage = Page.None;
    if (IsBeginning() && start != null) {
        start.active = true;
    }
}

function IsGamePaused() {
    return Time.timeScale==0;
}

function OnApplicationPause(pause:boolean) {
    if (IsGamePaused()) {
        AudioListener.pause = true;
    }
}

that is full script, it is written in JavaScript. i cant change function pausemenu with void OnGUI.

more ▼

answered Aug 18 '12 at 03:30 PM

lasha_an gravatar image

lasha_an
22 1 6 17

(comments are locked)
10|3000 characters needed characters left

You have to create Booleans to create this kind of menu.

 void Pause(){
      showMenu = true;
    }

    void UnPause(){
      showMenu= false;
    }

    void OnGUI(){
       If(showMenu){
        //CALL YOUR GUILAYOUTS HERE
       }

 }

Again: Any GUI function ONLY work inside OnGUI method.

more ▼

answered Aug 18 '12 at 03:36 PM

J.D. gravatar image

J.D.
116 1 2

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x57

asked: Aug 18 '12 at 09:34 AM

Seen: 310 times

Last Updated: Aug 18 '12 at 03:36 PM