開発
開発
プラットフォームを選択

Interactors

Interactorとは、手やコントローラーにアタッチされたコンポーネントで、つかむ、テレポート、ポークなどのアクションを開始します。アクションを開始するために、Interactorは入力データを使用してワールドスペースにおける位置を判断し、次に独自のComputeCandidate()メソッドを使用して、同じタイプの近くにあるInteractableコンポーネントを選択します(例: Ray Interactorは独自のRay Interactableを選択します)。IInteractorDrive()メソッドは、ComputeCandidate()をいつ実行するか、いつ選択を行うか、選択中に何が起こるかなどを決定します。すべてのInteractorは同じInteractorベースクラスを共有しています。このクラスはIInteractorを実装し、拡張機能としてIInteractorViewも実装します。

IInteractor

IInteractorインターフェイスは、インタラクションの状態を変更するためのメソッドを公開します。例えば以下が含まれます。
        void Enable();
        void Disable();

        void Preprocess();
        void Process();
        void Postprocess();

        void ComputeCandidate();
        bool HasCandidate { get; }
        object Candidate { get; }

        bool ShouldHover { get; }
        void Hover();

        bool ShouldUnhover { get; }
        void Unhover();

        bool ShouldSelect { get; }
        void Select();

        bool ShouldUnselect { get; }
        void Unselect();

        bool ComputeShouldSelect()
        bool ComputeShouldUnselect()

        bool HasInteractable { get; }
        bool HasSelectedInteractable { get; }
さらに、Interactorは、ポイントまたは選択されたInteractableへの参照を取得するためのメソッドや、InteractorStateの変更を取得しフォローするためのメソッドも公開します。
SDKのすべてのInteractorIUpdateDriverを実装し、デフォルトでUnity Updateで更新されます。
ライフサイクル全体を通じてInteractorの進行を開発者自身がコントロールする場合(Interactorを既存のプロジェクトや外部フレームワークに採用する場合など)は、IsRootDriverプロパティをfalseに設定したうえで、InteractorIInteractorメソッドを直接呼び出すことができます。
他のInteractorとの間でライフサイクルを調整したり優先順位を設定したりする必要がある場合も、デフォルトでInteractorが更新されないようにすることができます。その場合、InteractorGroupを使用して、Interactorをグループとして動作させることをおすすめします。

Selector

ISelectorにより、インタラクション(ボタンを押す、人差し指でつまむなど)の選択メカニズムが定義されます。Interactor自体で選択メカニズム(例: レイ、つかむ)が定義されていない場合は、ISelectorの設定がそれらのInteractorに使用されます。

リファレンス

Interactorに関する参考情報については、次のリンクをご覧ください。
  • Interactorに反応するオブジェクトにアタッチされているInteractableについては、Interactableをご覧ください。
  • Interaction SDKアーキテクチャーの全概要については、アーキテクチャーの概要をご覧ください。
  • 同時に複数のホバリングがある場合にどのようにInteractorを優先順位付けするかについては、InteractorGroupをご覧ください
  • 手やコントローラーの位置がどのように判別されるかについては、入力データの概要をご覧ください。
ナビゲーションロゴ
日本語
© 2026 Meta