类型'';已经包含'';
本文关键字:包含 类型 | 更新日期: 2023-09-27 17:57:31
我在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);
}
}
}
您有一个名为OptionsMenu
public Transform OptionsMenu;
的转换,然后是一个名称为OptionsMenu
的函数。
只需重命名void OptionsMenu(bool clicked)
函数或重命名Transform OptionsMenu
变量即可。
在同一个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);