Unity场景中如何让3d物体响应拖拽触摸等EventSystem事件
  oHo4xnCa6cuT 2023年11月28日 29 0


在unity中,有这么一些接口

IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler, IPointerMoveHandler, IPointerUpHandler, IPointerDownHandler, IInitializePotentialDragHandler, IBeginDragHandler, IDragHandler, IEndDragHandler, IDropHandler, IScrollHandler, IUpdateSelectedHandler, ISelectHandler, IDeselectHandler, IMoveHandler, ISubmitHandler, ICancelHandler

这些接口可以响应一些触摸事件,一般这些是ui控件挂载一个实现了这些接口的脚本就可以响应的,现在想让场景中的3d物体也能响应这些事件该怎么做呢?

一.创建3d物体,并挂载实现了这些接口的脚本

public class Supported : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler, IPointerMoveHandler, IPointerUpHandler, IPointerDownHandler, IInitializePotentialDragHandler, IBeginDragHandler, IDragHandler, IEndDragHandler, IDropHandler, IScrollHandler, IUpdateSelectedHandler, ISelectHandler, IDeselectHandler, IMoveHandler, ISubmitHandler, ICancelHandler
{
public void OnBeginDrag(PointerEventData eventData)
{
    Debug.Log("OnBeginDrag");
}

public void OnCancel(BaseEventData eventData)
{
    Debug.Log("OnCancel");
}

public void OnDeselect(BaseEventData eventData)
{
    Debug.Log("OnDeselect");
}

public void OnDrag(PointerEventData eventData)
{
    Debug.Log("OnDrag");
}

public void OnDrop(PointerEventData eventData)
{
    Debug.Log("OnDrop");
}
}

二.创建EventSystem

Unity场景中如何让3d物体响应拖拽触摸等EventSystem事件_触摸事件


三.camera挂载Graphic Raycaster 和 Physics Raycaster

Unity场景中如何让3d物体响应拖拽触摸等EventSystem事件_unity_02

运行游戏,鼠标放在物体上就能触发OnPosinterMove等事件

Unity场景中如何让3d物体响应拖拽触摸等EventSystem事件_3d_03


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月28日 0

暂无评论

推荐阅读
oHo4xnCa6cuT