プラグインのターゲットプラットフォーム設定(MUN2.0.0-MUN2.4.1.1の場合)

目次

  概要
  Unity のバージョンごとの対応の是非について
  Unity プラットフォームごとのマネージドプラグイン設定
  Unity プラットフォームごとのネイティブプラグイン設定


概要

MUN 2.4.1.1 未満のバージョンの MUN については、
特定の Unity バージョンにおける、マネージドプラグイン/ネイティブプラグインのターゲット設定が必要です。

  MUN クライアントは MUN クライアントの動作要件 に掲げる UnityEditor 上での動作保証はしておりますが、
  特定の Unity バージョンにおいて、MUN で使用している内部エンジン(MRS)のネイティブプラグインが原因で、ビルドエラーを引き起こす現象を確認しております。
この問題は Unity 5.5.3 以降、ならびに Unity の設定管理ファイルである .meta ファイルのフォーマット仕様が変更されたことを受けて、
Unity 5.5.2 以前のネイティブプラグインのプラットフォーム設定が反映できないのが原因です。
(Unity 公式でのアナウンスはありませんが、Unity のメジャーアップデートに伴う、一種の不具合というのが、弊社での認識です)

こちらについて、対応策を模索している最中ですが、現時点では解決できておりません。

  このページでは、現時点での不具合が、将来的な Unity のアップデートに対応できなくなることを想定し、
  あらかじめ「MUN クライアントのプラグインに対する、マルチプラットフォーム対応」のために記載いたします。


Unity のバージョンごとの対応の是非について

この対応が推奨されるのは、Unity 5.5.3 以降の Unity 5.x、および Unity 2017、 Unity 2018 (2018/08/28 現在において)

  Unity 5.5.3 以降の Unity 5.x、ならびに Unity 2017、 Unity 2018 のバージョンにおいて、
  特定プラットフォームのビルド(Android + IL2CPP)のケースにおいてだけですが、弊社にて、不具合が発生することが確認されております。
  よって、 上記開発環境であれば、この対応を行なうことをお勧めいたします。

Unity 5.0.x ~ Unity 5.5.2 での対応は不要です

  Unity 5.0.x ~ Unity 5.5.2 版での対応は不要です。この対応を行なわなくとも、正常動作いたします。
  また、対応状況についても、個別に Inspector から確認できます。


Unity プラットフォームごとのマネージドプラグイン設定

MUN で使用されるマネージドプラグインの設定

  まずは MUN のマネージドプラグインについて、下記2種類のファイルについて、対応プラットフォームの設定を行ないます。
  注意すべき点として、すべてのプラットフォームのマネージドプラグインが正常に設定されているかどうか確認する必要があります。
実際に、Unity5.6.0 + Android + IL2CPP でのビルドで失敗する主原因は、「Windows版(not Android)」のネイティブライブラリの
ターゲットプラットフォーム設定に不整合が発生しているために引き起こされます
まず iOS 向けのマネージドプラグインについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/iOS/Monobit ディレクトリを開き、その中の mun.dll を選択します。
mun.dll を選択したら、Inspector の表示にある Platform 設定について、「iOS」だけが選択されていることを確認してください。
もし「iOS」にチェックが入っていない場合にはチェックを入れてください。
また、「iOS」以外のプラットフォームにチェックが入っている場合には、そのチェックを外してください。
続けて、iOS 以外(Windows, MacOSX, Android)向けのマネージドプラグインについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/Monobit ディレクトリを開き、その中の mun.dll を選択します。
mun.dll を選択したら、Inspector の表示にある Platform 設定について、以下の項目についてのみ選択されている状態であることを確認してください。
 ・ Editor
 ・ Standalone
 ・ Android
 ・ WebGL
もし上記項目にチェックが入っていない場合にはチェックを入れてください。
また、上記項目以外の別のプラットフォームにチェックが入っている場合には、そのチェックを外してください。
また、Platform setting にて、Editor, Standalone に関する設定を同時に確認します。
Edtior については、CPUが「Any CPU」になっていること、OSが「Any OS」になっていることを確認してください。
Standalone については、Windows/MacOSX の全CPUに対応されていることを確認してください。
※ MUNクライアントはLinuxに対応しておりませんので、LinuxのチェックボックスのON/OFF状態は問いません。


Unity プラットフォームごとのネイティブプラグイン設定

MUN で使用されるネイティブプラグインの設定

  続けて、MUN(MRS)のネイティブプラグインについて、下記2種類のファイルについて、対応プラットフォームの設定を行ないます。
  こちらも、すべてのプラットフォームのネイティブプラグインが正常に設定されているかどうか確認する必要がありますので、注意してください。
Anroid(ARM) 向けのネイティブプラグインについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/Android/libs/armeabi-v7a ディレクトリを開き、その中の libmrs.so を選択します。
libmrs.so を選択したら、Inspector の表示から、Platform 設定について「Android」だけが選択されていることを確認してください。
もし 「Android」にチェックが入っていない場合にはチェックを入れ、
別のプラットフォームにチェックが入っている場合には、そのチェックを外してください。

また、CPU アーキテクチャについては「ARMv7」を選択してください。
Anroid(x86) 向けのネイティブプラグインについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/Android/libs/x86 ディレクトリを開き、その中の libmrs.so を選択します。
libmrs.so を選択したら、Inspector の表示から、Platform 設定について「Android」だけが選択されていることを確認してください。
もし 「Android」にチェックが入っていない場合にはチェックを入れ、
別のプラットフォームにチェックが入っている場合には、そのチェックを外してください。

また、CPU アーキテクチャについては「x86」を選択してください。
iOS 向けネイティブプラグインのうち、libcrypto ライブラリについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/iOS/Monobit/mrs/library ディレクトリを開き、その中の libcrypto.a を選択します。
libcrypto.a を選択したら、Inspector の表示から、Platform 設定について「iOS」だけが選択されていることを確認してください。
もし 「iOS」にチェックが入っていない場合にはチェックを入れ、
別のプラットフォームにチェックが入っている場合には、そのチェックを外してください。
iOS 向けネイティブプラグインのうち、libenet ライブラリについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/iOS/Monobit/mrs/library ディレクトリを開き、その中の libenet.a を選択します。
libenet.a を選択したら、Inspector の表示から、Platform 設定について「iOS」だけが選択されていることを確認してください。
もし 「iOS」にチェックが入っていない場合にはチェックを入れ、
別のプラットフォームにチェックが入っている場合には、そのチェックを外してください。
iOS 向けネイティブプラグインのうち、libmrs ライブラリについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/iOS/Monobit/mrs/library ディレクトリを開き、その中の libmrs.a を選択します。
libmrs.a を選択したら、Inspector の表示から、Platform 設定について「iOS」だけが選択されていることを確認してください。
もし 「iOS」にチェックが入っていない場合にはチェックを入れ、
別のプラットフォームにチェックが入っている場合には、そのチェックを外してください。
iOS 向けネイティブプラグインのうち、libssl ライブラリについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/iOS/Monobit/mrs/library ディレクトリを開き、その中の libssl.a を選択します。
libssl.a を選択したら、Inspector の表示から、Platform 設定について「iOS」だけが選択されていることを確認してください。
もし 「iOS」にチェックが入っていない場合にはチェックを入れ、
別のプラットフォームにチェックが入っている場合には、そのチェックを外してください。
iOS 向けネイティブプラグインのうち、libuv ライブラリについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/iOS/Monobit/mrs/library ディレクトリを開き、その中の libuv.a を選択します。
libuv.a を選択したら、Inspector の表示から、Platform 設定について「iOS」だけが選択されていることを確認してください。
もし 「iOS」にチェックが入っていない場合にはチェックを入れ、
別のプラットフォームにチェックが入っている場合には、そのチェックを外してください。
MacOSX/MacOS Sierra 向けのネイティブプラグインについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/Mac ディレクトリを開き、その中の mrs.bundle を選択します。
mrs.bundle を選択したら、Inspector の表示から、Platform 設定について「Editor」および「Standalone」の2つだけが選択されていることを確認してください。
もし 「Editor」「Standalone」にチェックが入っていない場合にはチェックを入れ、
それ以外の別のプラットフォームにチェックが入っている場合には、そのチェックを外してください。

また、Platform Settings のうち、「Editor」のプラットフォーム(Unity アイコンで表示されるもの)のタブを選択し、
CPU アーキテクチャについては「Any CPU」、OS について「OSX」が選択されているようにしてください。

更に、Platform Settings のタブを「Standalone」のプラットフォーム(下方向矢印で表示されるもの)のタブを選択し、
Mac OS X 向けの「x86」および「x86_64」のCPUアーキテクチャを両方選択しておいてください。
Windows(32bit) 向けのネイティブプラグインについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/x86 ディレクトリを開き、その中の mrs.dll を選択します。
mrs.dll を選択したら、Inspector の表示から、Platform 設定について「Editor」および「Standalone」の2つだけが選択されていることを確認してください。
もし 「Editor」「Standalone」にチェックが入っていない場合にはチェックを入れ、
それ以外の別のプラットフォームにチェックが入っている場合には、そのチェックを外してください。

また、Platform Settings のうち、「Editor」のプラットフォーム(Unity アイコンで表示されるもの)のタブを選択し、
CPU アーキテクチャについては「x86」、OS について「Windows」が選択されているようにしてください。

更に、Platform Settings のタブを「Standalone」のプラットフォーム(下方向矢印で表示されるもの)のタブを選択し、
Windows 向けの「x86」のCPUアーキテクチャだけが選択されているようにしてください。
Windows(64bit) 向けのネイティブプラグインについて、ターゲットプラットフォームの設定を行ないます。
UnityEditor の Project ビューから、Assets/Plugins/x86_64 ディレクトリを開き、その中の mrs.dll を選択します。
mrs.dll を選択したら、Inspector の表示から、Platform 設定について「Editor」および「Standalone」の2つだけが選択されていることを確認してください。
もし 「Editor」「Standalone」にチェックが入っていない場合にはチェックを入れ、
それ以外の別のプラットフォームにチェックが入っている場合には、そのチェックを外してください。

また、Platform Settings のうち、「Editor」のプラットフォーム(Unity アイコンで表示されるもの)のタブを選択し、
CPU アーキテクチャについては「x86_64」、OS について「Windows」が選択されているようにしてください。

更に、Platform Settings のタブを「Standalone」のプラットフォーム(下方向矢印で表示されるもの)のタブを選択し、
Windows 向けの「x86_64」のCPUアーキテクチャだけが選択されているようにしてください。