为了实现一个获取鼠标点击的物体的功能,写了以下代码。由于这个不针对特定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); } } }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211418.html原文链接:https://javaforall.net
