我有我正在使用的JavaScript代碼,它使我的Unity遊戲中的暫停菜單。這是一個簡單的暫停菜單,顯示「主菜單」和「退出遊戲」按鈕。在Unity中更改JS腳本,使其改變場景
如何將按鈕綁定到Unity中的場景?因此,如果我點擊「主菜單」,我希望它帶我到scene1
,並用音樂按鈕替換「退出遊戲」按鈕打開/關閉我的音樂。
我有我正在使用的JavaScript代碼,它使我的Unity遊戲中的暫停菜單。這是一個簡單的暫停菜單,顯示「主菜單」和「退出遊戲」按鈕。在Unity中更改JS腳本,使其改變場景
如何將按鈕綁定到Unity中的場景?因此,如果我點擊「主菜單」,我希望它帶我到scene1
,並用音樂按鈕替換「退出遊戲」按鈕打開/關閉我的音樂。
暫停菜單腳本:
#pragma strict
var musicBtnText : String = "Music: On";
var musicOn : boolean = true;
var isPaused : boolean = false;
function Update()
{
if(musicOn)
{
musicBtnText = "Music: On";
}
else
{
musicBtnText = "Music: Off";
}
if(Input.GetKeyDown(KeyCode.P))
{
isPaused = !isPaused;
if(isPaused)
{
Time.timeScale = 0;
}
else
{
Time.timeScale = 1;
}
}
}
function OnGUI()
{
if(isPaused)
{
if (GUI.Button(Rect(Screen.width/2-50, 240, 100, 40), "Main Menu"))
{
Application.LoadLevel("scene1");
}
if(GUI.Button(Rect(Screen.width/2-50, 300, 100, 40), "" + musicBtnText))
{
musicOn = !musicOn;
GameObject.Find("cameraName").GetComponent(AudioListener).enabled = !GameObject.Find("cameraName").GetComponent(AudioListener).enabled;
}
}
}
但是,如果你想落實到自己的代碼這一點,有一點要注意的是,在統一製作的按鈕時,您包含他們的if語句。這樣,只要點擊該按鈕,就會調用if語句內的任何代碼。至於打開和關閉音樂,您將希望啓用和禁用主音頻監聽器,默認情況下該監聽器已連接到主攝像機。因此,在我的代碼中,當GameObject.Find("cameraName")
替換攝像機名稱和主攝像機的名稱時。最後,通過呼叫Application.LoadLevel("levelName")
來完成統一的加載水平。祝你好運!如果這給了你任何錯誤,我很樂意提供幫助。
在C#:
using UnityEngine;
using System.Collections;
public class PauseMenu : MonoBehaviour {
public string musicBtnText = "Music: On";
public bool musicOn = true;
public bool isPaused = false;
void Update()
{
if(musicOn)
{
musicBtnText = "Music: On";
}
else
{
musicBtnText = "Music: Off";
}
if(Input.GetKeyDown(KeyCode.P))
{
isPaused = !isPaused;
if(isPaused)
{
Time.timeScale = 0;
}
else
{
Time.timeScale = 1;
}
}
}
void OnGUI()
{
if(isPaused)
{
if (GUI.Button(new Rect(Screen.width/2-50, 240, 100, 40), "Main Menu"))
{
Application.LoadLevel("scene1");
}
if(GUI.Button(new Rect(Screen.width/2-50, 300, 100, 40), "" + musicBtnText))
{
musicOn = !musicOn;
GameObject.Find("cameraName").GetComponent<AudioListener>().enabled = !GameObject.Find("cameraName").GetComponent<AudioListener>().enabled;
}
}
}
}
謝謝,這看起來不錯,唯一的問題是這樣的:資產/暫停菜單/ PauseMenu.js(2,20):BCE0018:名稱字符串'不表示有效類型('未找到')。你的意思是'UnityEngine.Networking.NetworkSystem.StringMessage'? –
我的不好,只是大寫字符串,它應該工作。 –
非常感謝你,很棒!既然你對此很瞭解,你有沒有將移動控件添加到Unity遊戲中?你是怎麼做到的?現在,當我在我的Android平板電腦上測試遊戲時,按鈕可以正常工作,但我無法控制汽車。有沒有辦法在不改變默認物理(統一標準資產中的carcontroller.cs)的情況下控制玩家。十分感謝! –
您使用什麼UI系統,NGUI,UGUI? –
'Application.LoadLevel(「levelName」)'加載一個新場景。 http://docs.unity3d.com/ScriptReference/Application.LoadLevel.html – Ben