1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Unity】UI ToolkitのPointerEventBase<T>のpositionは何を指すのか?

Posted at

ドラッグアンドドロップを実装をするとき、タップまたはクリックした座標が必要になります。

今回は登録したイベントからタップした座標を取得するという事を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である

D&D.gif

これでドラッグアンドドロップは実装できそうですね。

  1. イベントは他にも存在します

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?