在Unity中的GameObject外部检测Input.GetMouseButtonUp?

时间:2016-02-21 08:38:44

标签: c# unity3d

如何在Unity中的特定GameObject区域外检测Input.GetMouseButtonUp?是否有任何Unity资产,或者我们应该以编程方式执行此操作吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

当然必须通过编程来完成,无论是否存在资产。因为它很容易编程,我怀疑是否有一个。

您需要了解的是,Input.GetMouseButtonUp(int按钮)是一个事件,并且完全与任何“位置”分离。 API中的描述说“在用户释放给定鼠标按钮的帧期间返回true。”。

因此在框架中鼠标按钮已被释放,您想要检查箭头是否“触摸”或覆盖某些GameObject(GO)。根据你的例子,当GO被击中时你将什么也不做,否则就会做点什么。

一种方法是使用以下方法: http://docs.unity3d.com/ScriptReference/Camera.ScreenPointToRay.html

你的GameObject至少需要一个对手,也许是一个刚体,以便被射线探测到。如果两者都需要,我不完全确定。

附加说明:拥有一个UI元素,此方法也可用于在将鼠标悬停在其上时设置一些标记,例如:http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseOver.html