Unity3d 如何处理点击对象?

Unity3d 如何处理点击对象?,unity3d,unityscript,Unity3d,Unityscript,我尝试了一些处理点击对象的代码示例,但它们都不起作用 我在场景中有对象的网格: 在主摄像机上有一个C脚本组件,其代码为: using UnityEngine; using System.Collections; public class cameraAnim3 : MonoBehaviour { void Update() { if (Input.GetMouseButtonDown (0)) { // if left button pressed...

我尝试了一些处理点击对象的代码示例,但它们都不起作用

我在场景中有对象的网格:

在主摄像机上有一个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中!!!显示,但没有消息点击对象!!!是的

如何捕捉此网格上的单击


答案就在这里

检测碰撞的现代方法是实现接口,并确保您拥有EventSystem和相关的Raycaster 2d或3d,具体取决于您在场景中使用的碰撞器。这比编写自己的代码来管理点击和指针位置要好得多。此外,游戏对象本身必须具有碰撞器组件。它可以是网格碰撞器,也可以是更通用、性能更好的长方体碰撞器。

请不要使用unity标记来回答与unity游戏引擎相关的问题。一般来说,在使用标签之前阅读标签说明是个好主意。你在对象上没有colider