【发布时间】:2018-04-02 16:00:19
【问题描述】:
我希望能够将鼠标悬停在游戏对象(代理)上,并在右键或左键单击时创建一个类似于 Windows 右键单击菜单的浮动菜单。我尝试过使用 OnGUI() 和 OnMouseOver() 的组合,但我要么没有得到我需要的行为,要么什么也得不到。这是我目前所拥有的:
private void OnMouseOver()
{
mouseOver = true;
mousePos = Input.mousePosition;
}
private void OnMouseExit()
{
mouseOver = false;
}
private void OnGUI()
{
if (mouseOver && Input.GetMouseButtonDown(0))
{
GUI.Box(new Rect(mousePos.x, mousePos.y, 200f, 100f), "this is a test");
}
}
mouseOver 和 mousePos 初始设置为 false。
【问题讨论】:
-
您是否为希望悬停的对象添加了对撞机?
-
我不知道 Input.GetMouseButtonDown() 只执行一帧,所以菜单出现了,但只针对那一帧。我通过用 Input.GetMouseButton() 替换它来解决这个问题,只要按下按钮就会执行
标签: c# user-interface unity3d menu mouseover