我有桌面的代码按p,但我不能得到一个移动gui按钮代替。我一直在使用Corona SDK,并且是Unity3D的新手。请帮我把"按p"变成一个显示"保存"的GUI按钮。提前感谢!!
import System.Collections.Generic;
var paused : boolean = false;
var pausedGUI : GUITexture;
var gameName : String = "Your Game";
var myList = new List.<Transform>();
function Start()
{
if(pausedGUI)
pausedGUI.enabled = false;
}
function Update ()
{
if(Input.GetKeyUp(KeyCode.P))
{
paused = !paused;
if(paused == true){
Time.timeScale = 0.0;
if(pausedGUI) pausedGUI.enabled = true;
} else {
Time.timeScale = 1.0;
if(pausedGUI) pausedGUI.enabled = false;
}
}
}
function OnGUI() {
if(!paused)
{
GUILayout.BeginArea(Rect(200,10,400,20));
GUILayout.BeginVertical();
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
GUILayout.Label("Press P to Pause");
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
GUILayout.EndVertical();
GUILayout.EndArea();
return;
}
var box : GUIStyle = "box";
GUILayout.BeginArea(Rect( Screen.width/2 - 200,Screen.height/2 - 300, 400, 600), box);
GUILayout.BeginVertical();
GUILayout.FlexibleSpace();
if(GUILayout.Button("Save Game"))
{
LevelSerializer.SaveGame(gameName);
}
GUILayout.Space(60);
for(var sg in LevelSerializer.SavedGames[LevelSerializer.PlayerName]) {
if(GUILayout.Button(sg.Caption)) {
LevelSerializer.LoadNow(sg.Data);
Time.timeScale = 1;
}
}
GUILayout.FlexibleSpace();
GUILayout.EndVertical();
GUILayout.EndArea();
}
查看我的游戏在这里:Google Play
你所需要做的就是在OnGUI调用的开始处放置一个按钮来切换暂停状态
function OnGUI(){
if(!paused){
if(GUILayout.Button("Pause Game"))
{
paused = true;
}
}else{
if(GUILayout.Button("Resume Game"))
{
paused = false;
}
}
...
对不起,如果语法有点偏离,我通常这样做是c#:)
你需要进行格式化以将按钮放置在正确的位置,但这取决于你的游戏布局
希望能有所帮助