かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

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

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