EventInterfaces
事件触发类型的接口
命名空间 :using UnityEngine.EventSystems;
| 事件触发类型 | 描述 | 需要实现的方法 |
| IPointerClickHandler | 点击按钮(按下操作+松开操作) | |
| IPointerDownHandler | 按下按钮 | |
| IPointerUpHandler | 松开按钮 | |
| IPointerEnterHandler | 刚进入操作范围 | |
| IPointerExitHandler | 从操作范围刚离开 | |
| IDragHandler | 拖拽操作中 | |
| IBeginDragHandler | 拖拽操作开始时 | |
| IEndDragHandler | 拖拽操作结束时 | |
| IScrollHandler | 当鼠标滚轮滚动时调用 | |
| ISelectHandler | 选择对象操作 | |
| IDeselectHandler | 取消选择对象操作 | |
| IMoveHandler | 发生移动事件(上、下、左、右等)时调用 | |
| ICancelHandler | 按下 Cancel 按钮时调用 | |
| IDropHandler | 在拖动目标对象上调用 | |
| ISubmitHandler | 按下 Submit 按钮时调用 | |
| IUpdateSelectedHandler | 每次勾选时在选定对象上调用 | |
| IInitializePotentialDragHandler | 在找到拖动目标时调用,可用于初始化值 | |
using UnityEngine;
using UnityEngine.EventSystems;//事件触发类型命名空间
public class EventTest : MonoBehaviour,IPointerDownHandler,IPointerUpHandler
{
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("PointerDown");
}
public void OnPointerUp(PointerEventData eventData)
{
Debug.Log("PointerUp");
}
}
EventTrigger

| 事件触发类型 | 描述 |
| PointerClick | 点击按钮(按下操作+松开操作) |
| PointerDown | 按下按钮 |
| PointerUp | 松开按钮 |
| PointerEnter | 刚进入操作范围 |
| PointerExit | 从操作范围刚离开 |
| Drag | 拖拽操作中 |
| BeginDrag | 拖拽操作开始时 |
| EndDrag | 拖拽操作结束时 |
| Scroll | 当鼠标滚轮滚动时调用 |
| Select | 选择对象操作 |
| Deselect | 取消选择对象操作 |
| Move | 发生移动事件(上、下、左、右等)时调用 |
| Cancel | 按下 Cancel 按钮时调用 |
| Drop | 在拖动目标对象上调用 |
| Submit | 按下 Submit 按钮时调用 |
| UpdateSelected | 每次勾选时在选定对象上调用 |
| InitializePotentialDrag | 在找到拖动目标时调用,可用于初始化值 |
EventTrigger.Entry event1 = new EventTrigger.Entry ();
event1.eventID = EventTriggerType.PointerDown;
event1.callback.AddListener ((eventData) =>
{
Debug.Log("PointerDown");
});
EventTrigger.Entry event2 = new EventTrigger.Entry ();
event2.eventID = EventTriggerType.PointerUp;
event2.callback.AddListener ((eventData) =>
{
Debug.Log("PointerUp");
});
EventTrigger trigger = obj1.AddComponent<EventTrigger> ();
trigger.triggers.Add (event1);
trigger.triggers.Add (event2);
PointerEventData
| button | 此事件的 InputButton。 |
| clickCount | 连续单击次数。 |
| clickTime | 上次发送单击事件的时间。 |
| delta | 上次更新以来的指针增量。 |
| dragging | 确定用户在拖动鼠标还是在触控板上滑动。 |
| enterEventCamera | 与最后一个 OnPointerEnter 事件关联的摄像机。 |
| hovered | 悬停堆栈中的对象列表。 |
| lastPress | 最后一个按下事件的 GameObject。 |
| pointerCurrentRaycast | 与当前事件关联的 RaycastResult。 |
| pointerDrag | 正在接收 OnDrag 的对象。 |
| pointerEnter | 已收到“OnPointerEnter”的对象。 |
| pointerId | 指针的标识。 |
| pointerPress | 已收到 OnPointerDown 的 GameObject。 |
| pointerPressRaycast | 返回与鼠标单击、游戏手柄按钮按下或屏幕触摸相关联的 RaycastResult。 |
| position | 当前指针位置。 |
| pressEventCamera | 与最后一个 OnPointerPress 事件关联的摄像机。 |
| pressPosition | 最后一次指针点击的屏幕空间坐标。 |
| rawPointerPress | 按下的对象,即使该对象无法处理按下事件。 |
| scrollDelta | 上次更新以来的滚动次数。 |
| useDragThreshold | 应使用拖动阈值吗? |
鼠标输入操作事件
| 方法 | 描述 |
| OnMouseEnter | 当鼠标移到物体一瞬间时调用一次 |
| OnMouseExit | 当鼠标从物体身上移开时调用一次 |
| OnMouseOver | 当鼠标一直停留在物体身上时,一直循环调用 |
| OnMouseDown | 当鼠标在物体身上点击鼠标左键调用一次 |
| OnMouseDrag | 当鼠标在物体身上点击鼠标左键一直不放,摁住了,就一直循环调用 若在物体上点击鼠标左键后摁住不放,移动鼠标远离物体,也会循环调用 |
| OnMouseUp | 当鼠标在物体点击鼠标左键后松手抬起,抬起的时候不管鼠标此时在不在物体上,就会被调用 |
| OnMouseUpAsButton | 当鼠标在物体点击鼠标左键时,抬起鼠标时鼠标必须也在物体上才会被调用 |
//鼠标经过时改变物体颜色
private Color mouseOverColor = Color.blue;//声明变量为蓝色
private Color originalColor;//声明变量来存储本来颜色
private MeshRenderer mt;
void Start()
{
mt = this.GetComponent<MeshRenderer>();
originalColor = mt.sharedMaterial.color;//开始时得到物体着色
}
void OnMouseEnter()
{
print("鼠标接触模型一瞬间");
mt.material.color = Color.blue;
}
void OnMouseOver()
{
print("鼠标一直停留在模型上");
mt.material.color = Color.red;
}
void OnMouseDown()
{
print("鼠标在物体身上点击鼠标左键调用一次");
mt.material.color = Color.yellow;
}
void OnMouseDrag()
{
print("鼠标在物体身上点击鼠标左键一直不放,摁住了,就一直循环调用");
mt.material.color = Color.black;
}
void OnMouseUp()
{
print("鼠标在物体点击鼠标左键后松手抬起");
mt.material.color = Color.cyan;
}
void OnMouseUpAsButton()
{
print("鼠标在物体点击鼠标左键时,抬起鼠标时鼠标必须也在物体上才会被调用");
mt.material.color = Color.magenta;
}
void OnMouseExit()
{
print("当鼠标从物体身上移开时调用一次");
mt.material.color = Color.white;
}
Unity事件触发类型介绍
191

被折叠的 条评论
为什么被折叠?



