秋风知劲草

You’ll Never Know, If You Never Try

unity3d OnMouseDown()函数没被调用

为了实现一个获取鼠标点击的物体的功能,写了以下代码。由于这个不针对特定GameObject,一开始我将这个脚本挂载在摄像机上,结果运行后,点击鼠标,并没有输出Mouse,说明没调用到OnMouseDown函数。后面我把该脚本放到场景中一个物体上,运行后发现,只有点击该物体时,才会调用到OnMouseDown,点击其他物体都没反应。要使得可以选中任意物体,把这段代码放在update函数中,就可以了。

结论:OnMouseDown()只针对脚本挂载的物体有效。

加一点说明:物体要有碰撞器才有效果。

PS:注意大小写OnMouseDown()

   GameObject selectedGmObj;
   void OnMouseDown()
    {
        Debug.Log("Mouse");
        /*鼠标选中gameobject */
        if (Input.GetMouseButton(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
                selectedGmObj = hit.collider.gameObject; //获得点击的物体
                Debug.Log(selectedGmObj.name);
            }
        }
    }


阅读更多
文章标签: unity onMouseDown
个人分类: Unity3D
上一篇unity导入的自定义3D模型从地板掉下去
下一篇Unity协程(Coroutine)原理深入剖析
想对作者说点什么? 我来说一句

Unity双击响应事件代码

2016年04月15日 672B 下载

没有更多推荐了,返回首页

关闭
关闭