如何在Unity编辑器中使用ExecuteEvents停止OnSceneGUI滑块拖动事件?

问题描述 投票:0回答:1

我不是编码人员,所以我花了几天的时间来尝试找出一种阻止拖动当前滑块的方法,但是我无法弄清楚使它起作用的语法。我以为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。

我也不确定这是否是正确的方法。我不在乎一些指针。

c# unity3d syntax
1个回答
0
投票

因为pointerCurrentRaycast不是 pointerCurrentRaycast成员,所以。它属于此类型的特定instance,并且您需要该实例的引用才能访问该值。


[不知道这是否解决了您实际上要尝试执行的操作,但是您可能可以在鼠标位置创建自己的static实例,并使用Raycast来获取要悬停的对象。有点像

PointerEventData
© www.soinside.com 2019 - 2024. All rights reserved.