我在Unity上尝试制作主菜单。当然,我非常沉闷,我在编码方面非常不熟练。但是,我喜欢它,但这只是屁股的痛苦。
我的问题正是
"类型' LevelManager'已包含' OptionsMenu'
的定义
我只想尝试在选项按钮中编码,但它只是一个屁股。这是我的代码;
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;
public class LevelManager : MonoBehaviour {
public Transform MainMenu, OptionsMenu;
public void LoadScene(string name){
SceneManager.LoadScene(name);
}
public void QuitGame(){
Application.Quit();
}
public void OptionsMenu(bool clicked){
if (clicked == true){
OptionsMenu.gameObject.SetActive(clicked);
MainMenu.gameObject.SetActive(false);
} else {
OptionsMenu.gameObject.SetActive(clicked);
MainMenu.gameObject.SetActive(true);
}
}
}
答案 0 :(得分:1)
您不能在同一个C#类中使用具有相同名称的字段和方法。
public Transform MainMenu, OptionsMenu;
和
public void OptionsMenu(bool clicked)
您需要更改其中一个。
原因,如果您想将方法OptionsMenu传递给另一个方法,该怎么办:
private static void DoSomething(Action<bool> action)
{
}
private static void DoSomething(Transform t)
{
}
然后:
var obj = new LevelManager();
// confusing call. Is this the method or the field ?
DoSomething(obj.OptionsMenu);
答案 1 :(得分:1)
您有一个名为OptionsMenu
public Transform OptionsMenu;
的转换,然后是一个名为OptionsMenu
的函数。
只需重命名您的void OptionsMenu(bool clicked)
功能或重命名Transform OptionsMenu
变量。