ドラッグアンドドロップを実装をするとき、タップまたはクリックした座標が必要になります。
今回は登録したイベントからタップした座標を取得するという事をUI Toolkit
でやっていきます。
PointerEventBase<T>のおさらい
**PointerEventBase<T>**とは何か?
UI Toolkitで使用されるPointerHOGEHOGEというイベントクラスの親クラスです。
- PointerDownEvent
- PointerMoveEvent
- PointerUpEvent
例えばドラッグアンドドロップを実装する上で使用される上記のクラスはPointerEventBase<T>を継承しています。1
PointerEventBase<T>のpositionプロパティが何を指すのか
ここからが本題です。
/// <summary>
/// Gets the pointer position in the Screen or World coordinate system.
/// </summary>
public Vector3 position { get; protected set; }
送られたイベントのpositionプロパティは、コメントアウトにある通りスクリーンまたはワールド座標に変換した座標が帰ってきます。
図の用な感じで左上が(0,0)、右下が(maxX, maxY)という事になります。maxXとmaxYは何?
UIDocument
が参照しているPanelSettings
。
ReferenceResolution
の値が画面右下部分の座標になります。
まとめ
- PointerEventBase<T>のpositionはタップしたスクリーン上の座標の事
- スクリーンのサイズはPanel SettingsのReferenceResolutionである
これでドラッグアンドドロップは実装できそうですね。
-
イベントは他にも存在します ↩