Contents
はじめに
HoloLens の頃とは当然ながら仕様が変わっており、結構悩んだので備忘録として残します。 以下ソースコードで、空間内で斜線カーソルの当たっている場所にCubeを生成することが出来ます。 MRTKというよりかは Microsoft.MixedReality の内容になるかと思います。
コード
エアタップした先に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でスクリプトから写真を撮る方法についても紹介してます。
そうした中でも自分のように実装してみたいと思った方の参考になればと思います。
リンク