2015-04-29 2 views
1

Я пробовал некоторые примеры кода для обработки щелчка по объекту, но они не работают.Как обращаться с кликом по объекту?

У меня есть сетка объекта на сцене: alt text

На главной камере есть один C# Script Component с кодом:

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 !!!" показал, но ни одно сообщение «не щелкнуло на объекте !!!» было показано.

Как поймать щелчок по этой сетке?

alt text

+0

Пожалуйста, не используйте тег «единство» для вопросов, связанных с движком игры Unity. Как правило, рекомендуется прочитать описание тега перед его использованием. –

+0

у вас нет коллидера на объекте –

ответ

0

Современный для обнаружения столкновений является реализация IPointerClickHandler интерфейса, и убедитесь, что у вас есть EventSystem и соответствующий Raycaster (2D или 3D, в зависимости от того, какой коллайдера ты используя), присутствующие в сцене. Это намного лучше, чем писать собственный код для управления щелчками и указателями. Кроме того, сам игровой объект должен иметь компонент Collider. Это может быть либо кошелек сетки, либо более общий (и лучше для производительности) коллайдер.

Смежные вопросы