unity3d OnMouseDown()函数没被调用

原创 2015年11月18日 16:51:23

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


Unity3D 中鼠标按下时OnMouseDown()、Input.GetMouseButtonDown()和EventType.MouseDown的响应验证

初学unity3D,对于其中的事件响应不是

unity中的MonoBehaviour.OnMouseDown()

在官网的api文档中仅说明了
  • lynon
  • lynon
  • 2014年06月18日 16:27
  • 1764

unity3d对象添加了碰撞体以后OnMouseDown事件

在Unity3d中为了防止物体被穿过,给对象添加了碰撞体,然后原来的单击事件OnMouseDown不执行了,经过查询文档发现:  ◆function OnMouseDown():void  描述...

unity 脚本的挂载 与按钮事件

演示在按钮上挂载一个脚本,(当然一般在父级面板挂载) 一、Add Component ——LoginMgr脚本,在On Click()中添加按钮与方法,如下图 二、动态连接挂载方法 需要组...

iOS中JSON解析三方库的比较

网络数据解析框架 1 . JsonModel 一个 JSON 模型转换库,有着比较简洁的接口。Model 需要继承自 JSONModel。 2 . yyModel yyModel比较...

IOS中四种json解析效率比较

作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式...

Unity3D中的线性插值Lerp()函数解析

  • 2015年12月03日 19:06
  • 1.02MB
  • 下载

Unity3d 协程、调用函数、委托

(一)协程 开启方法:StartCoroutine("函数名"); 结束方法StopCoroutine("函数名"),StopAllCoroutines(); IEnumerator TestIEnu...

[Unity3D]调用函数时出现NullReferenceException的一个可能原因

今天遇到一个报错,如下图: NullReferenceException  UnityEngine.MonoBehaviour.StartCoroutine (IEnumerator rout...
  • eijnew
  • eijnew
  • 2014年11月27日 14:20
  • 13644
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:unity3d OnMouseDown()函数没被调用
举报原因:
原因补充:

(最多只允许输入30个字)