スマートフォン用の表示で見るつくるの大好き。つくるのが大好きな人の記録。この広告は、90日以上更新していないブログに表示しています。Unityご無沙汰しております。ご無沙汰の間に家族がひとり増えちゃいました☆さて、HoloLensアプリのUnityプロジェクトにおいて、一部のソースコードを非公開にしたいと思い、ManagedのPluginを作ろうとしたのですが思いのほかハマってしまったので作り方をご紹介します。StudioソリューションとHoloLens用Unityプロジェクトを含むシンプルなサンプルプロジェクトを公開しています。こちらを参考にコードを追加するなどしてご活用下さい。github.comPluginソリューション構成Pluginをビルドするためにソリューションには4つのプロジェクトを用意しました。Sharedソースコードを保持する共有プロジェクト。Package4UnityEditorUnityEditorでの実行時に利用される.NET3.5をランタイムとするDLLのプロジェクト。ソースは実体を含めず1のものをリンクしている。Package4UWPHoloLens実機(UWP)での実行時に利用されるUWP用DLLのプロジェクト。ソースは実体を含めず1のものをリンクしている。UWPUnitTest3の動作確認のためのUnitTestプロジェクト。UnityでHoloLensアプリを開発をする場合、UnityEditorでの実行環境とHoloLens実機での実行環境が大きく異なるためプラグインもそれぞれの環境で用いるものが必要です。ハマリどころとしては、UnityEditor用PluginとUWP用Pluginは同じインターフェイスを持っていないとWindowsStore形式にビルドする際にエラーとなります。これに関連しては後述するPlaceholderの設定が重要です。利用して実行環境に応じたコードがビルドされるようにします。(これ可読性が悪いのでどうにかならないですかねw)単純に”Hello”という文字を返すメソッドを用意しました。Package4UWPでビルドすることでそれぞれの環境用に同一のインターフェイスを持ったDLLをビルドすることができます。動作テストプラグインの動作テストはHoloLens実機で行うとUnityからビルド、実機デプロイ、、と時間のかかる手順を何度も行うはめになりますし、デバッグ効率も悪くなります。基本的な動作についてはUWP用UnitTestプロジェクトで確認をしておくととても幸せになれます。Unity側構成UnityEditor用DLLをPlugins配下に、HoloLens実機用DLLをPlugins/WSA配下に配置します。DLLには下記の設定を行います。[UnityEditor用DLL][HoloLens用DLL]ここで重要なのがPlaceholderの設定です。WindowsStore形式へのビルドプロセス内ではDLLが持つインターフェイスのチェックを行っているようなのですが、そのチェックにはHoloLens用DLLではなくUnityEditor用DLLが用いられるようです。そのインターフェイスチェックを行うDLLの指定がPlaceholderの設定となります。この理由からUnityEditor用DLLとHoloLens用DLLは全く同じインターフェイスとなっている必要があります。Pluginの作り方は以上となります。HoloLensのUWPまわりのコードの開発効率を上げる方法として、HoloLens実機にDLLをデプロイする前に、UWPのUnitTestプロジェクトでデバッグと動作確認を行っておくというTipsについてもご紹介しました。»プロフィールid:peugeot-106-s16つくるのが大好きな人の記録。月別アーカイブ参加グループプログラミングはてなブログをはじめよう!peugeot-106-s16さんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?はてなブログをはじめる(無料)はてなブログとはつくるの大好き。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。