我尝试在MonoBehabiour脚本中的OnGUI函数中获取MouseUp事件。
但它总是返回“布局”和“重绘”。
private void OnGUI() {
Event e = Event.current;
Debug.Log (e.type);
}
我的调试如下: 布局 重绘 布局 重绘 布局 重绘等等
为什么会这样? 我怎么知道获取事件MouseUp?
Event e = Event.current;
int s = e.button;
我可以知道当我点击鼠标按钮0时,但我怎么知道何时获得MouseUp事件?
我想在编辑器中使用它,而不是在播放模式下。 有可能吗?
答案 0 :(得分:1)
您可以使用if (Event.current.type == EventType.MouseUp)
获取事件MouseUp事件。
以下是完整的代码示例:
void OnGUI()
{
Event mEvent = Event.current;
if (mEvent != null && mEvent.isMouse)
{
//Get Mouse Down
if (mEvent.type == EventType.MouseDown)
{
}
//Get Mouse Up
if (mEvent.type == EventType.MouseUp)
{
}
//Get Mouse Move
if (mEvent.type == EventType.MouseMove)
{
}
}
}
现在,要检测哪个鼠标按钮:
//Left Mouse button
if (mEvent.button == 0)
{
}
//Right Mouse button
if (mEvent.button == 1)
{
}
//Middle Mouse button
if (mEvent.button == 2)
{
}
您可以将这些内容放在if (mEvent.type == EventType.MouseDown)
和if (mEvent.type == EventType.MouseUp)
代码中。