Unity3D保存移动GUI按钮



我有桌面的代码按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#:)

你需要进行格式化以将按钮放置在正确的位置,但这取决于你的游戏布局

希望能有所帮助

相关内容

  • 没有找到相关文章

最新更新