【发布时间】:2014-11-22 09:22:07
【问题描述】:
大多数 Unity 教程建议在更新函数中使用鼠标事件,如下所示:
function Update () {
if (UnityEngine.Input.GetMouseButton(1)) {
}
}
这让我觉得效率非常低,类似于在 AS 中使用 onEnterFrame 或在 JS 中使用 setInterval 来为整个应用程序提供动力——我真的更喜欢使用基于事件的系统。
OnMouseDown() 方法很有用,但仅当 MouseDown 位于对象上时才会触发,而不是场景中的任何位置。
那么问题来了:Unity 中是否有一个 MouseEvent 用于检测鼠标按钮是否全局按下,或者更新解决方案是否是推荐的选项?
【问题讨论】:
-
这并不是真的低效。事实上,任何事件驱动的输入系统都是在幕后完成的,所以事件驱动的方法可能有更多的开销。
标签: events unity3d mouse unityscript mousedown