我试图用鼠标右键单击在屏幕上显示和隐藏菜单。 例如,当单击鼠标右键时,将显示一个菜单,然后再次单击该菜单将隐藏。
int flag = 1;
void Update()
{
if (Input.GetMouseButton(1))
{
if(flag == 1)
{
RadialMenuSpawn.ins.SpawnMenu(this); //Show it
flag = 0;
}
if(flag == 0)
{
/* hide it */
flag = 1;
}
}
}
是否有任何命令可以将菜单隐藏在屏幕上,因为它正在复制?
答案 0 :(得分:1)
只需将所有菜单对象存储在一个数组中,然后右键单击该数组即可遍历该数组,从而启用/禁用这些对象。
public GameObject[] menuObjects;
private bool _menuState = false;
void Update()
{
if(Input.GetKeyDown(KeyCode.Mouse1))
{
// Change the value of _menuState
_menuState = !_menuState;
// Loop through the menu objects
foreach(GameObject obj in menuObjects)
{
// Enable/Disable the objects
obj.SetActive(_menuState);
}
// Do other stuff...
}
}