2

現在、ユーザーが環境内で何かをクリックしてドラッグするモバイル ゲームに取り組んでいます。それを中央にドラッグすると、ファン メニューが開き、そこでオプションを選択できます。私が抱えている問題は、メニューが開いたときにユーザーの指が押されたままになり、指をメニュー項目の上にドラッグしてから放すと、OnPointerUp イベントが登録されないことです。

ユーザーが画面から手を離してメニュー項目を押すように強制すると、ゲームのこの部分の UX が台無しになります。

最初に UI 要素の 1 つを押してから指を別の要素に移動してから放すと、イベントは登録されますが、ボタンの外側で発生した OnPointerDown からは機能しません。

4

1 に答える 1

1

イベントデータの変数をOnPointerDown変更することで、イベントを受け取ったオブジェクトを変更できます。pointerPress

次のスクリプトは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"); }
}
于 2019-07-29T03:10:25.980 に答える