かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

HoloLens で AirTap 検出したいね

AirTapが基本的なアクションなので、それを契機に何かするってのはよくあることでしょう。 ということで、やり方メモ。

下準備

HoloToolkitを入れたプロジェクトを準備します。

シーンのMain Cameraをさくっと消します。

HoloToolkit/Input/Prefabs/HoloLensCameraというものがあるのでHierarchyにぽとっと置きます。次にHoloToolkit/Input/Prefabs/InputManagerもHierarchyにぽとっと置きます。

これで、今まで空のゲームオブジェクト作って、Gaze Managerをつけて~Input Managerつけて~とかやってたのが楽に出来るらしい。

AirTap 検出!

次に C# のスクリプトを1つ作ります。この人はHoloToolkit.Unity.InputModule.IInputClickHandlerを実装します。何かオブジェクトに、このスクリプトをくっつけるとインターフェースのOnInputClickedメソッドが呼ばれます。

こんな感じで作ってみました。

using HoloToolkit.Unity.InputModule;
using UnityEngine;

public class AirTapBehavior : MonoBehaviour, IInputClickHandler
{
    public void OnInputClicked(InputClickedEventData eventData)
    {
        this.gameObject.GetComponent<Renderer>().material.color = Color.red;
    }
}

Hierarchyに適当にCubeを置いて適当な位置に設置します。

f:id:okazuki:20170816232229p:plain

このCubeに、さっきつくったAirTapBehaviorをぽとっと落とします。そして実行。

AirTap前

f:id:okazuki:20170816232900p:plain

AirTap後

f:id:okazuki:20170816232848p:plain

ちゃんと動いてるっぽい。