【问题标题】:Unity Show/Hide menu from screenUnity 在屏幕上显示/隐藏菜单
【发布时间】:2019-03-10 06:15:02
【问题描述】:

我正在尝试通过鼠标右键单击在屏幕上显示和隐藏菜单。 例如,当单击右键时,会出现一个菜单,当再次按下时,菜单会隐藏。

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

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

【问题讨论】:

  • 好吧……祝你好运?问题是什么?
  • @Bart 抱歉,我没有注意到问题已被删除(可能按下按钮:))。是否有任何命令可以从屏幕上隐藏该菜单,因为它正在复制自己?
  • 产卵确实暗示了“创造”。所以你不想一直这样做。您想生成/创建一次,然后 SetActive 使用 true 或 false 作为参数。如果你真的想一直使用 SpawnMenu,你将不得不用一个 Destroy 调用来跟进它,但我会冒险猜测这不是你想要的。

标签: c# unity3d


【解决方案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...
    }
}

【讨论】:

    猜你喜欢
    • 2022-06-24
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多