unity3d 鼠标事件穿透GUI界面的问题

在用OnGUI函数绘制窗体时,鼠标在窗体或控件上面操作时,场景则不应该响应鼠标事件。网上一般用 GUIUtility.hotcontrol!=0来屏蔽,当hotControl不为0时说明有控件处于激活状态。查官方文档,当鼠标在GUI控件上面按下时,hotcontrol被设置为该控件的ID,当鼠标按键被弹起时,hotcontrol为设置为0,因为在场景里面只能配合鼠标按下事件,不能配合鼠标弹起,因为此时hotcontrol已经被引擎置为0了。 但是目前开发的界面上发现,偶尔在窗体上点击时,hotcontrol仍然为0,因此不能完全屏蔽掉GUI的操作。不知道有人知道什么原因么?现在只好做一个全局标记变量,每个界面负责管理这个变量,当鼠标在某个界面内,则把标记置为true。离开或界面被关闭,则置为false。先用这个方法解决吧。

记录一下。希望能找到更好的解决方法。

原文地址:https://www.cnblogs.com/qzzlw/p/2659255.html