Unity3D v5.4 - GUILayout不存在

时间:2016-08-21 20:32:33

标签: c# unity3d unity5

我正在尝试制作游戏菜单。为此,我需要GUIlayout及其方法。但是,Unity看起来无法找到GUIlayout对象,显示此错误:

  

Assets / scripts / GameManager.cs(38,25):错误CS0103:名称`GUIlayout'在当前上下文中不存在

我的代码:

using UnityEngine;
using UnityEditor;
using System.Collections;

public class GameManager : MonoBehaviour {

public bool isMenuActive{get;set;}

void Awake () {
    isMenuActive = true;
}

void OnGUI(){
    const int Width = 300;
    const int Height = 200;
    if (isMenuActive){
        Rect windowRect = new Rect((Screen.width - Width) / 2 ,(Screen.height - Height) / 2, Width , Height);
        GUIlayout.window(0,windowRect,MainMenu,"Main menu");
    }
}

private void MainMenu(){
    // Debug.Log("menu is displayed");
}

}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

问题来自代码行:

GUILayout.Window(0, windowRect, MainMenu, "Main menu");

1 GUILayout不是GUIlayout。 “ L ”已大写。

2 。使用的GUILayout的静态函数为Window而非window。问题#1的资本化问题相同。

3 Window函数的第三个参数需要一个带有int参数的函数传递给它。您必须使用MainMenu参数化int函数。

public class GameManager : MonoBehaviour
{

    public bool isMenuActive { get; set; }

    void Awake()
    {
        isMenuActive = true;
    }

    void OnGUI()
    {
        const int Width = 300;
        const int Height = 200;
        if (isMenuActive)
        {
            Rect windowRect = new Rect((Screen.width - Width) / 2, (Screen.height - Height) / 2, Width, Height);
            GUILayout.Window(0, windowRect, MainMenu, "Main menu");
        }
    }

    private void MainMenu(int windowID)
    {
        // Debug.Log("menu is displayed");
    }
}

最后,您不应该使用this。您应该使用new Unity UI。 Here是一个教程。