禁用鼠标输入到GameObject

时间:2014-03-12 02:36:11

标签: c# unity3d

Unity中有没有办法在不删除/禁用碰撞盒的情况下禁用GameObject的鼠标输入?

我想写一个脚本,在按下一次后会忽略对象的鼠标输入。在脚本范围内这样做并不难,但我希望该对象上的其他脚本忽略鼠标输入而不修改所有其他脚本。

2 个答案:

答案 0 :(得分:3)

根据OnMouseDown documentation

  

在属于Ignore Raycast图层的对象上不会调用此函数。

因此,一种方法是将对象层切换为Ignore Raycast。

this.gameObject.layer = LayerMask.NameToLayer("Ignore Raycast");

但是如果你有其他依赖于光线投射的功能,那么它们也将被禁用(除非它们是在其他层中的光线投射)。

答案 1 :(得分:0)

这可以通过放置验证/过滤输入的脚本来实现。它可能是另一个脚本中的单个bool reveiceInput,每次输入时都会读取该脚本。因此,如果第一次mouseDown之后receiveInput为false,则其他人不会影响它。