屏幕上的Unity显示/隐藏菜单

时间:2019-03-09 19:02:50

标签: c# unity3d

我试图用鼠标右键单击在屏幕上显示和隐藏菜单。 例如,当单击鼠标右键时,将显示一个菜单,然后再次单击该菜单将隐藏。

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;
            }
        }
}

是否有任何命令可以将菜单隐藏在屏幕上,因为它正在复制?

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...
    }
}