检测游戏对象上的鼠标点击[重复]
Posted
技术标签:
【中文标题】检测游戏对象上的鼠标点击[重复]【英文标题】:Detecting mouse clicks on a gameobject [duplicate] 【发布时间】:2014-02-10 06:02:25 【问题描述】:这是我想要点击的游戏对象附带的代码
void Update ()
if (Input.GetMouseButtonDown (0))
Application.LoadLevel("option");
而且似乎我可以单击屏幕上的任意位置来生成“Application.LoadLevel("option");"运行。
我该如何解决这个问题?
【问题讨论】:
那是因为您只检查鼠标按钮是否被点击而不是点击它的位置。 您可以使用光线投射来检查鼠标点击下的内容。这里的说明answers.unity3d.com/questions/28064/… 【参考方案1】:正如@Qwertie 所说,您在哪里点击很重要。如果你的游戏对象附加了碰撞器,那么你可以使用OnMouseDown()
。每当您单击具有碰撞器和此脚本作为组件的游戏对象时,都会调用它。
void OnMouseDown()
Application.LoadLevel("option");
【讨论】:
工作很棒!感谢您 ! :D 但是添加对撞机也允许对象与其他游戏对象发生碰撞。使用时要小心 你可以为他们创建一个额外的层。【参考方案2】:试试这个:
private Vector3 currentMouseDown;
void OnMouseOver ()
if (Input.GetMouseButtonDown (0))
currentMouseDown = Input.mousePosition;
Debug.Log ("down");
if (Input.GetMouseButtonUp (0) && currentMouseDown != null)
Debug.Log ("Up");
if (currentMouseDown == Input.mousePosition)
Debug.Log ("get");
此代码将解决拖动冲突问题。
【讨论】:
以上是关于检测游戏对象上的鼠标点击[重复]的主要内容,如果未能解决你的问题,请参考以下文章