【问题标题】:Unity3D Save Mobile GUI ButtonUnity3D 保存移动 GUI 按钮
【发布时间】:2014-06-26 13:45:54
【问题描述】:

我通过按 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

【问题讨论】:

    标签: android user-interface mobile unity3d save


    【解决方案1】:

    您需要做的就是在 OnGUI 调用的开头放置一个按钮,该按钮将切换暂停状态

    function OnGUI(){
      if(!paused){
        if(GUILayout.Button("Pause Game"))
        {
          paused = true;
        }
      }else{
        if(GUILayout.Button("Resume Game"))
        {
          paused = false;
        }
      }
    
    ...
    

    对不起,如果语法有点不对,我通常这样做是 C# :)

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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2013-12-07
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      • 2015-01-27
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      相关资源
      最近更新 更多