HoloLensアプリ開発手順 備忘録(カーソル、エアタップ)
はじめに
すでに沢山の方が開発手順の記事を記載してますが、個人の知識整理として投稿します。
※2019/05/15時点の記事になります。
1.Unityでプロジェクトを作成する
2.プロジェクトにMRTKをインポートし、Mixed Realityプロジェクト用の設定にする
3.Input Managerを追加する
4.カーソルを追加する
5.エアタップを認識させる
環境
Unity:2017.4.27f1 Personal(64bit)
MRTK:HoloToolkit-Unity-2017.4.3.0-Refresh.unitypackage
MRTKをインポートし、Mixed Realityプロジェクト用の設定にする
Unityで3Dプロジェクトを作成したら、メニューバーから「Assets」→「Import Package」→「Custom Package...」を選択する。
ファイル選択ダイアログが表示されるので、ダウンロードしたMRTKのパッケージを選択し、インポートする。
インポートするとメニューバーに「Mixed Reality Toolkit」が追加されるので、「Mixed Reality Toolkit」→「Configure」→「Apply Mixed Reality Project Settings」を選択する。これを選ぶとMixed Reality用のセットアップを行ってくれる。
Input Managerを追加する
Input ManagerはHoloLensの入力系を制御するオブジェクトとのことで、ジェスチャの認識やカーソル、視線などを制御できるようになるとのこと。
1.ProjectウインドウのHoloToolkitにあるInputManagerオブジェクトをHierarchyウインドウに追加する。
InputManagerオブジェクトはHoloToolkit/Input/Prefabs/の配下にある。
カーソルを追加する
視界の中心にカーソルを表示する。
PCで言うところのマウスポインタの役割を果たす。
1.ProjectウインドウのHoloToolkitにあるCursorオブジェクトをHierarchyウインドウに追加する。
CursorオブジェクトはHoloToolkit/Input/Prefabs/Cursor/の配下にある。
2.HierarchyウインドウでInputManagerを選択し、InspectorウインドウにInputManagerの情報が表示されている状態にする。
3.HierarchyウインドウのCursorオブジェクトを、Inspectorウインドウの「Simple SinglePointer Selector(Script)」内の「Cursor」にドラッグアンドドロップする。
これでカーソルが表示される。
エアタップでオブジェクトに干渉する
オブジェクトに対しエアタップジェスチャによる干渉する。
1.エアタップで干渉したいオブジェクトに対し、C#スクリプトを追加する。
Hierarchyウインドウで干渉したいオブジェクトを選択し、Inspectorウインドウの下にあるAdd Componentを押下。
new scriptを選択してC#スクリプトを追加する。
2.C#スクリプトでゲームオブジェクトにIInputClickHandlerインターフェースを追加する。
手順2で追加したC#スクリプトを開き、オブジェクトにIInputClickHandlerインターフェースを追加する。
using UnityEngine;
using HoloToolkit.Unity.InputModule; // InputModuleをusingで追加しておく
public class GestureTest : MonoBehaviour, IInputClickHandler { // IInputClickHandlerを追加
// OnInputClickedイベントを追加する(これがエアタップされた時にイベントハンドラとして呼ばれる)
public void OnInputClicked(InputClickedEventData eventData)
{
// ここにエアタップされた時の処理を記述(以下はオブジェクトのカラーを赤に変えている)
GetComponent<Renderer>().material.color = Color.red;
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
上記の様にIInputClickHandlerを追加することでOnInputClicked()が実装される。
エアタップするとこのOnInputClicked()がイベントハンドラとして呼びだされる。
オブジェクトをエアタップすると
色が変わる(エアタップというジェスチャを認識し、イベントハンドラの処理が行われた。)
Author And Source
この問題について(HoloLensアプリ開発手順 備忘録(カーソル、エアタップ)), 我々は、より多くの情報をここで見つけました https://qiita.com/Dough/items/e0565510fd242f6c73c7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .