Unity3d 如何处理点击对象?
我尝试了一些处理点击对象的代码示例,但它们都不起作用 我在场景中有对象的网格: 在主摄像机上有一个C脚本组件,其代码为: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...
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