我正在尝试制作游戏菜单。为此,我需要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");
}
}
有什么想法吗?
答案 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");
}
}