我希望能够将鼠标悬停在游戏对象(代理)上,并在右键或左键单击时创建一个类似于 Windows 右键单击菜单的 float 菜单。我尝试使用 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() 仅针对单个帧执行,因此正在绘制 GUI.Box 但仅针对单个帧执行。
要修复此问题,可以改用 Input.GetMouseButton(),因为只要按下按钮,它就会执行。
关于c# - 如何在单击 GameObject 时创建菜单? (统一),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49614537/