[Unity]Unityで始めるMagicLeap開発

更新した内容を以下サイトにアップロードいたしました。(2020/05/14) ↓
[Iwaxlab](http://localhost:8000/articles?id=7)

今回はUnityでMagicLeapの自作アプリ開発手順を紹介したいと思います。
MagicLeapの開発を進めるにはいくつか下準備が必要で、まだその下準備が整っていない方はこちらの記事を参照してください。
[MagicLeap入門以前](https://iwaxlab.com/articles?id=6)
また、MagicLeap側で必要パッケージなどが既にインストールされたテンプレートプロジェクトが提供されていますが、勉強の為にも必要パッケージのインストールから始めようと思います

##必須パッケージのインストール
ではまずUnityで開発するにあたって必要な環境、パッケージを確認しましょう。
・UnityHubがインストールされている
・Unity 2019.2.xx 以降のバージョン
・MagicLeapのアカウントを持っている
・MagicLeapのパッケージマネージャがインストール済み
まず上記4点が整っている事を確認してください。確認出来たらパッケージマネージャを立ち上げてUnityに必要なパッケージをインストールします。
"UnityPackage->MagicLeapUnityPackage"を選択しバージョンを選択、↓アイコンをクリックして"Apply"、パッケージがダウンロードされます

![000.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/1282ee6e-38df-f94a-46ed-f037b1bb177a.jpeg)
![001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/82205400-5385-2760-ffed-010d02756919.jpeg)


##準備 プロジェクト偏
次に、UnityEditor側で必要なモジュールを追加します。
UnityHubを開いて左側の"インストール"を押し、2019.2.xx以降のバージョンで"モジュールを加える"選択します。

![002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/6db8511a-c370-a467-98f5-c04f1b3b7f39.jpeg)

その中の"Lumin OS(Magic Leap) Build Support"にチェックを入れ実行を押します。
これでビルドに必要なモジュールを追加できました。

![003.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/40a4064b-5aba-ffba-7832-7b4b09d949c2.jpeg)


では新規プロジェクトを作成しましょう。テンプレートは３Dを選択し、任意の名前で作成してください。

![004.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/044578d5-8d41-d33a-d15d-fa249b570859.jpeg)

##準備 エディタ偏
先ほど作成したプロジェクトを開いて、"Edit->Preferences->ExternalTools->Lumin"にSDKのパスを設定します。 

![005.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/908b292f-2fef-be3f-018a-40b429dbf04a.jpeg)

次に、"File->Build Settings"でビルドターゲットを"Lumin"に変更します

![006.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/7cd11de3-91d2-e81a-e6b7-7a22ebd6c99a.jpeg)

次に、"Window->PackageManager->Advanced->Show preview packages"を選択して過去のパッケージを表示させ、"XR Management"をインストールします

![007.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/9d41ffaa-805d-9819-ac87-13104209ad8d.jpeg)

"Edit->ProjectSettings->XR Plugin Management"でLuminアイコンタブの方で"+"を押し、"MagicLeapLoader"をダウンロードします。
また、↓アイコン側で、先ほどダウンロードした"MagicLeapLoader"を反映追加します。

![008.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/1cb75a0e-1159-1b96-505a-f59a1c40871d.jpeg)

![009.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/db328934-5eb9-67c7-493a-0109af57d232.jpeg)

そしてやっとカスタムパッケージのインポートです。
では、皆さんがいつもやっている、ツールバーから"Asset->Import Package->Custom Package"で先ほどダウンロードした"MagicLeap.unitypackage"を選択し全てインポートしてください。
パッケージの場所がわからなくなったら、パッケージマネージャを開いて見ましょう。左上の歯車アイコンから、パッケージのパスが確認できます。

![010.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/53c15ef7-bd76-c020-4fcc-27effc8c3be2.jpeg)

無事インポートできましたか？では、新規のシーンを作成して、インポートしたパッケージの中の"MagicLeap->Core->Assets->Prefabs"にある、"Main Camera"とDirectional LightをSceneに追加しましょう。

![011.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/ecfba41f-1402-ec6d-a145-7c1cbc38a3a4.jpeg)

最後にAPIレベルと識別子を設定し、開発証明書の登録をします。		何を言っているかわからない場合は、最初の章であげた[MagicLeap入門以前]を参照してください。
"Edit->Project Settings->Magicleap->Manifest Settings"で"Minimum API Level"を"４"に設定し、その下の"LowLantencyLightwear"にチェックを入れます。

![012.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/31e99dcd-1799-bcc2-4192-a145c550c399.jpeg)

同じProjectSettingsから"Player"でLuminアイコンを押し、"Other Settings->Identification"の"BundleIdentifier"を小文字で入力します。	個人で作成する場合なら特に気にしなくていいので、デフォルトのままでも大丈夫です。
同じ項目の"Configuration->Api Compatibility Level"でターゲットを".NET 4.x"にします。

![013.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/39657586-bd78-7ee3-6ecc-eb3969d3397c.jpeg)

同じ項目の"Publish Settings->ML Certificate"で公式サイト側で作ったプライベイトキーのパスを入力します。

![014.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/2172e6d2-7eb7-e358-d069-7e1154fb1e38.jpeg)

これでやっと開発する準備が整ったことになります。
今回は何をやっているのかを理解する為に最初から自分で準備しましたが、基本的には公式が用意しているテンプレートを使用するのがおすすめです。

##Unityちゃんを配置
では我らがアイドルUnityちゃんを配置してみましょう。場所はどこでもいいですが、先ほど配置したMainCameraの画角内に収めてください。
僕は以下のように配置しました。

![015.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/12c76ad5-c4fe-68cc-7494-9efe4a28b431.jpeg)

##MLRemote経由でコンテンツの確認
コンテンツを確認する前に、GraphocsのAPIを"OpenGLCore"に設定し、エディタを再起動します。

![016.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/65e8fd9c-faca-3f8d-9368-919717482c95.gif)
(公式サイトより引用)

再起動ができたら、ツールバーの"Magic Leap->Import Support Libraries"を選択し、次に"Lauch MLRemote"でリモートツールを立ち上げましょう。
MagicLeap本体を持っている場合は"Start Device"、持っていない場合は"Start Simulator"を押しましょう。
今回は持っていないものとして"Start Simulator"を選択します。

![017.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/98a48c15-7091-2834-c8e1-9bae475d7194.jpeg)

すると次々にサーバーが立ち上がって"Interaction"という別ウィンドウが立ち上がるはずです。 <br>これでUnityEditor側でPlayを押すと、InteractionウィンドウでUnityちゃんが表示されているのを確認できれば大成功です！
	
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">[Unity]Unityで始めるMagicLeap開発<a href="https://t.co/Owt0jWpLko">https://t.co/Owt0jWpLko</a> <a href="https://t.co/ODwGdrjxvF">pic.twitter.com/ODwGdrjxvF</a></p>&mdash; iwax (@iwax51101141) <a href="https://twitter.com/iwax51101141/status/1175750909214638082?ref_src=twsrc%5Etfw">September 22, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


##お疲れさまでした
以上がMagicLeapをUnityで開発する基本です。
といっても今回はコンテンツを表示させただけで、MagicLeapのAPI周りやコントローラ、カメラの連携などは一切やっておりませんのでAPI周りの紹介はまた別記事でやりたいなと考えております。
これからMagicLeapが世にどういった衝撃を与えていくのか楽しみですね。
それでは。