我不是编码人员,所以我花了几天的时间来尝试找出一种阻止拖动当前滑块的方法,但是我无法弄清楚使它起作用的语法。我以为ExecuteEvents是我要寻找的东西,但我不知道如何。
void OnSceneGUI()
{
if (Event.current.type == EventType.MouseDown && Event.current.button == 1 && cancel)
{
cancel = false;
ExecuteEvents.Execute<IPointerUpHandler>(PointerEventData.pointerCurrentRaycast.gameObject, new PointerEventData(EventSystem.current), ExecuteEvents.pointerUpHandler);
slider = 0;
}
}
我正在尝试使用PointerEventData.pointerCurrentRaycast.gameObject
获取滑块但这会导致以下错误,
非静态字段,方法或属性'PointerEventData.pointerCurrentRaycast'
and I don't know why. I am using
UnityEngine.EventSystems。
我也不确定这是否是正确的方法。我不在乎一些指针。
因为pointerCurrentRaycast
是不是 pointerCurrentRaycast
成员,所以。它属于此类型的特定instance,并且您需要该实例的引用才能访问该值。
[不知道这是否解决了您实际上要尝试执行的操作,但是您可能可以在鼠标位置创建自己的static
实例,并使用Raycast来获取要悬停的对象。有点像
PointerEventData