如何在点击GameObject时创建菜单? (统一)

时间:2018-04-02 16:00:20

标签: c# user-interface unity3d menu mouseover

我希望能够将鼠标悬停在GameObject(代理)上,并在右键或左键单击,创建一个类似于Windows右键菜单的浮动菜单。我尝试过使用OnGUI()和OnMouseOver()的组合,但我要么没有得到我需要的行为,要么根本没有得到任何东西。以下是我到目前为止的情况:

Resturant

mouseOver和mousePos初始设置为false。

2 个答案:

答案 0 :(得分:0)

我所做的是在Canvas中创建我想要的菜单,添加动画控制器和动画并将其放在摄像机视图之外(动画将菜单移动到摄像机视图内),最后添加一个bool条件触发器来隐藏或显示菜单

enter image description here

然后我只需将一个单击功能附加到一个按钮,以便在有人点击它时触发动画

public class ShowMenu : MonoBehaviour
{

    public Animator ObjectBtnAnimations;

    public void HideObjControls()
    {
        if (ObjectBtnAnimations.GetBool("hide"))
        {
            ObjectBtnAnimations.SetBool("hide", false);
        }
        else
        {
            ObjectBtnAnimations.SetBool("hide", true);
        }
    }
}

答案 1 :(得分:0)

Input.GetMouseButtonDown()仅针对单个帧执行,因此正在绘制GUI.Box,但仅针对单个帧。

要修复此Input.GetMouseButton(),只要按下该按钮,就可以使用它。