关闭

unity3d OnMouseDown()函数没被调用

标签: unityonMouseDown
3640人阅读 评论(0) 收藏 举报
分类:

为了实现一个获取鼠标点击的物体的功能,写了以下代码。由于这个不针对特定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);
            }
        }
    }


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:52713次
    • 积分:836
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:28篇
    • 译文:0篇
    • 评论:15条
    文章分类
    最新评论