この記事にはアフィリエイト広告および広告が含まれています。

Contents

はじめに

HoloLens の頃とは当然ながら仕様が変わっており、結構悩んだので備忘録として残します。 以下ソースコードで、空間内で斜線カーソルの当たっている場所にCubeを生成することが出来ます。 MRTKというよりかは Microsoft.MixedReality の内容になるかと思います。

HoloLens 2で空間内の斜線カーソルの当たっている場所にAirTapでオブジェクト生成

コード

エアタップした先にCubeを生成していくコードは以下になります。

[SerializeField]
private GameObject _testCube;

private PointerHandler _pointerHandler;

void Start()
{
    // 空間内のエアタップ処理追加
    _pointerHandler.OnPointerClicked.RemoveAllListeners();
    _pointerHandler.OnPointerClicked.AddListener((eventData) =>
    {
        // 空間内タップ
        onPointerClicked(eventData);
    });
    Microsoft.MixedReality.Toolkit.CoreServices.InputSystem.RegisterHandler<IMixedRealityPointerHandler>(_pointerHandler);
}

/// <summary>
/// 空間内エアタップ
/// </summary>
/// <param name="eventData">MixedRealityPointerEventData</param>
private void onPointerClicked(MixedRealityPointerEventData eventData)
{
    Instantiate(_testCube, eventData.Pointer.Result.Details.Point, Quaternion.identity);
}

最後に

初代HoloLensの頃と違い、ハンドジェスチャーが使えるようになったHoloLens 2なのでAirTapを使用する場面が減ってきてはいると思います。

HoloLens 2でスクリプトから写真を撮る方法についても紹介してます。


そうした中でも自分のように実装してみたいと思った方の参考になればと思います。

Twitterでフォローしよう

おすすめの記事