.NET assemblies can contain embedded resources. An embedded resource is a collection of binary data that’s part of the .NET assembly. You can access this binary data in code via a file-like API.
デフォルトでは、WebGL のビルドには埋め込みリソースが含まれていません。これにより最終的なバイナリのサイズを小さくすることができます。なぜなら、埋め込みリソースは非常に大きい場合があるからです。しかし、ユーザーコードや .NET クラスライブラリの API の中には、適切に動作するために埋め込みリソースを必要とするものがあります。例えば、StringComparison.InvariantCultureIgnoreCase
の値を使用する文字列比較では、非 ASCII 文字を比較する際に埋め込みリソースを使用します。
以下のエディタースクリプトを使って、WebGL ビルドの埋め込みリソースを有効にすることができます。
using UnityEditor;
public class WebGLEditorScript
{
[MenuItem("WebGL/Enable Embedded Resources")]
public static void EnableEmbeddedResources()
{
PlayerSettings.WebGL.useEmbeddedResources = true;
}
}
この Player 設定を有効にすると、WebGL のビルドには、プロジェクトが使用するすべての .NET アセンブリの埋め込みリソースが含まれます。