Unity は QNX 用のプラグインを自動的に検出します。プラグインをインポートすると、Unity はこれらのプラグインごとにメタデータファイルを作成します。例えば、共有オブジェクトと共有ライブラリの .so、QNX のアーカイブファイルの .a などです。これらのメタデータファイルには、ターゲットアーキテクチャやプラットフォームなどのプラグイン情報が含まれます。Unity ビルドシステムは、これらのメタデータファイルを参照して、ビルドプロセス中にどのファイルをコピーするかを追跡します。
1 つのプロジェクトに同じ名前の共有ライブラリが複数存在することができます。例えば、同じプロジェクトに x86_64 の libFoo.so と arm64 の libFoo.so が存在する場合、Unity はビルド対象のターゲットに応じて正しい libFoo.so を検出し、プレイヤービルドにコピーします。
これらのファイルは Unity エディターで手動で編集できます。ただし、プロジェクトの Plugins フォルダーにプラグインを手動で追加する必要はありません。プロジェクトディレクトリのプロジェクトの Assets/Plugins/QNX フォルダー下にある特別なフォルダーに配置すると、インポート時に Unity が自動的にプラットフォームとアーキテクチャを検出して設定します。
Unity は、以下のルールに基づいて、QNX 用のプラグインを自動的に検出します。
アーキテクチャ専用フォルダー - Assets/Plugins/QNX/<arch> の下にプラグインを配置します。ここで、<arch> は x86、x86_64、armeabi-v7a、または arm64-v8a です。Unity は、それぞれのターゲットアーキテクチャ用にビルドするときにのみ、これらのプラグインをコピーします。例えば、プラグインを Assets/Plugins/QNX/x86_64 の下に配置した場合、Unity は x86_64 用にビルドするときにのみ、そのプラグインをプレイヤービルドにコピーします。
SDK 専用フォルダー - プラグインが特定の SDK (QNX 7.0 または QNX 7.1) を対象にしている場合は、そのプラグインを Assets/Plugins/QNX/<sdk>/<arch> の下に配置できます。ここで、<sdk> は Neutrino70 または Neutrino71 にすることができます。Unity は、それぞれの SDK バージョンとターゲットアーキテクチャ用にビルドするときにのみ、このプラグインをコピーします。注:QNX 7.1 は x86 をサポートしていないため、この組み合わせはエラーとして記録されます。
アーキテクチャ専用プラグイン - プラグインを Assets/Plugins/QNX の下に配置し、その ELF ヘッダーを通じてターゲットアーキテクチャがチェックされ、適切なアーキテクチャが割り当てられるようにします。