检测游戏对象上的鼠标点击[重复]

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");
        
    

此代码将解决拖动冲突问题。

【讨论】:

以上是关于检测游戏对象上的鼠标点击[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何突出显示和检测 CSS 网格行上的鼠标点击?

100个 Unity实用技能| 游戏中获取鼠标点击的坐标,并将游戏对象移动到鼠标的点击位置

如何用按键精灵实现游戏多开,鼠标按键同步操作

Unity - 在鼠标点击的位置放置对象

易语言中!模拟鼠标点击无效

鼠标点击iOS13.4