1.2D对象响应点击
(1)Canvas对象上有Graphic Raycaster
(2)被点击的对象加上Image,并勾选Raycast Target
(3)场景里有唯一对象挂上EventSystem和StandaloneInputModule
(4)被点击的对象加上Button, 然后调用:
GetComponent<Button>().onClick.AddListener(() =>
{
Debug.Log("button click");
});
2.3D对象响应点击
(1)看3d对象的camera上挂上Physics Raycaster
(2)被点击对象上加上Box Collider
(3)场景里有唯一对象挂上EventSystem和StandaloneInputModule
(4)挂上点击脚本,内容如下:
public class SceneObjClick : EventTrigger {
public override void OnPointerClick(PointerEventData eventData)
{
base.OnPointerClick(eventData);
Debug.Log("Scene Obj Click");
}
public override void OnDrag(PointerEventData eventData)
{
base.OnDrag(eventData);
Debug.Log("Scene Obj Drag");
}
}
其中EventTrigger.cs是unity自身的脚本,内如如下:
namespace UnityEngine.EventSystems
{
//
// 摘要:
// ///
// Receives events from the EventSystem and calls registered functions for each
// event.
// ///
[AddComponentMenu("Event/Event Trigger")]
public class EventTrigger : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler, IInitializePotentialDragHandler, IBeginDragHandler, IDragHandler, IEndDragHandler,