コンテンツにスキップ

PointerController クラス

IRawPointerSource の生イベント列を PointerEvent(Add/Remove 合成・PointerId 採番済み)へ変換する状態機械。 生イベントは任意のスレッドから受け取りキューに積むだけで、変換と OnPointerEvent の発火は Flush を呼んだスレッド(UI スレッドを想定)上で行います。

名前空間: FloatSoda.Abstractions.Input
アセンブリ: FloatSoda.Abstractions.dll

public class PointerController : IDisposable

object ← PointerController

IDisposable

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

指定された生ポインター入力源を購読するコントローラーを作成します。

public PointerController(IRawPointerSource pointerSource)

pointerSource IRawPointerSource

購読する生ポインター入力源。nullは指定できず、破棄するまで保持されます。

生ポインター入力源の購読を解除し、以後に発生するイベントの受信を停止します。

public void Dispose()

破棄前にキューへ追加済みのイベントは削除されず、その後のFlushで通知されます。

キューに溜まった生イベントを取り出して状態機械へ流し、OnPointerEvent を発火します。 UI スレッドから毎フレーム呼びます。

public void Flush()

変換済みポインタイベントの通知。Flush を呼んだスレッドで発火します。

public event Action<PointerEvent>? OnPointerEvent

Action<PointerEvent>?