我已经尝试了一些代码来处理点击对象,但它们不起作用。
我在场景中有对象的网格:
在主摄像头上有一个C#脚本组件,代码为:
using UnityEngine;
using System.Collections;
public class cameraAnim3 : MonoBehaviour
{
void Update() {
if (Input.GetMouseButtonDown (0)) { // if left button pressed...
print ("cli!!!");
// create a ray passing through the mouse pointer:
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast (ray, out hit)) { // if something hit...
print ("clicked on object!!!");
// if you must do something with the previously
// selected item, do it here,
// then select the new one:
Transform selected = hit.transform;
selected.gameObject.SetActive (true);
print (selected.gameObject.name);
// do whatever you want with the newly selected
// object
}
}
}
}
当我点击头部网格上的左键时,在控制台消息“cli !!!”中显示,但没有消息“点击对象!!!”被展示了。
如何抓住这个网格点击?
答案 0 :(得分:0)
答案 1 :(得分:0)
现代检测碰撞是为了实现IPointerClickHandler
界面,并确保你有一个EventSystem和一个相关的Raycaster(2d或3d,取决于你使用的是什么对撞机)。它比编写自己的代码来管理点击和指针位置要好得多。此外,游戏对象本身必须具有Collider
组件。它可以是网格对撞机,也可以是更通用(性能更好)的盒式对撞机。