包括,Collider,Trigger,EventSystem,EventTrigger,Input等
PS:1、3D物体上需要添加Collider才能触发事件,
2、EventSystem,EventTrigger继承自Events
1、Collider:
- MonoBehaviour.OnCollisionEnter(Collision collision) 当进入碰撞器
- MonoBehaviour.OnCollisionExit(Collision collision) 当退出碰撞器
- MonoBehaviour.OnCollisionStay(Collision collision) 当逗留碰撞器
2、Trigger:
- MonoBehaviour.OnTriggerEnter(Collider collider)当进入触发器
- MonoBehaviour.OnTriggerExit(Collider collider)当退出触发器
- MonoBehaviour.OnTriggerStay(Collider collider)当逗留触发器
3、Mouse:(Colliders)
- OnMouseDown:当鼠标上的按钮被按下时触发的事件;
- OnMouseUp:当鼠标按键被松开时触发的事件
- OnMouseDrag:当用户鼠标拖拽GUI元素或碰撞体时调用;
- OnMouseEnter:当鼠标进入物体范围时被调用,进入时调用一次;
- OnMouseExit:当鼠标退出时被调用;
- OnMouseOver:当鼠标移动到某对象的上方时触发的事件,持续调用;
4、EventSystem:(UI):
PS:只要脚本挂载的物体或者其子物体(孙物体等)有可以检测到射线的组件,就可以触发事件;比如将脚本挂载到Canvas上,如果Canvas下没有能进行射线检测的组件(比如Image等组件),则不触发UI事件;而如果Canvas下有子物体有能检测射线的组件,则可以触发事件。例:在Canvas下有两个Image子物体,Canvas上挂载了UI事件脚本(调用了IpointerEnterHandler等),则当鼠标进入到两个Image子物体中时可以调用事件,当鼠标移出Image子物体,进入空白区域时,则不触发事件。
- IPointerEnterHandler - OnPointerEnter - 当鼠标进入
- IPointerExitHandler - OnPointerExit - 当鼠标离开
- IPointerDownHandler - OnPointerDown - 当鼠标按下(OnPointerDown和OnPointerUp需要成对出现)
- IPointerUpHandler - OnPointerUp - 当鼠标抬起(OnPointerDown和OnPointerUp需要成对出现)
- IPointerClickHandler - OnPointerClick - 当鼠标按下并抬起
- IInitializePotentialDragHandler - OnInitializePotentialDrag -
- IBeginDragHandler - OnBeginDrag - 当开始拖拽
- IDragHandler - OnDrag - 当拖拽中
- IEndDragHandler - OnEndDrag - 当结束拖拽
- IDropHandler - OnDrop - 当放下(在A物体上调用OnDrag,在B物体上调用OnDrop,并保证B物体的渲染优先级比A物体高,即在Hierachy视图中,指定区域对应的物体一定要在被拖动物体的下面)
- IScrollHandler - OnScroll - 当滚动,常用于ScrollView等组件(Image也可以使用,鼠标在Image上并滚动鼠标滚轮时调用)
- IUpdateSelectedHandler - OnUpdateSelected-当每个选择对象
- ISelectHandler - OnSelect - 当对象变为选定
- IDeselectHandler - OnDeselect - 当对象取消选定
- IMoveHandler - OnMove - 当移动时
- ISubmitHandler - OnSubmit - 当提交按钮被按下
- ICancelHandler - OnCancel - 当取消按钮被按下
(待补充)
4、鼠标滚轮的使用
- Input.getAxis(" Mouse ScrollWheel")
if (Input.GetAxis("Mouse ScrollWheel") > 0) { if (_camera.fieldOfView >= 10) { } }