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