目前,我正在開發(fā)一款手機游戲,用戶將在環(huán)境中單擊并拖動某些內(nèi)容,如果將其拖動到中心,則會打開一個風扇菜單,然后他們可以在其中選擇一個選項。我遇到的問題是,當菜單打開時,用戶的手指仍然會被按下,如果他們將手指拖動到菜單項上然后釋放,則不會注冊 OnPointerUp 事件。強制用戶放開屏幕并按下菜單項會破壞我的游戲這部分的用戶體驗,因為它應該是從拖動元素的平滑過渡。如果我最初按下一個 UI 元素,然后將手指移動到另一個元素然后放開,該事件確實會注冊,但它無法從源自按鈕外部的 OnPointerDown 運行。
1 回答

翻閱古今
TA貢獻1780條經(jīng)驗 獲得超5個贊
OnPointerDown您可以通過更改pointerPress事件數(shù)據(jù)的變量來更改接收事件的對象。
以下腳本將觸發(fā)OnPointerUp您釋放指針的任何對象:
public class TestUI : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerEnterHandler
{
public void OnPointerDown(PointerEventData eventData) { Debug.Log(this.gameObject + " Down"); }
public void OnPointerEnter(PointerEventData eventData) { eventData.pointerPress = gameObject; }
public void OnPointerUp(PointerEventData eventData) { Debug.Log(this.gameObject + " Up"); }
}
- 1 回答
- 0 關(guān)注
- 139 瀏覽
添加回答
舉報
0/150
提交
取消