スプライトアトラスはエディターのメニューで作成され、プロジェクトのフォルダーにアセットとして (*.spriteatlas) 格納されます 。
スプライトアトラスアセットは、パックされたテクスチャの一連のテクスチャ設定が可能です。アトラスにパックされたスプライトのテクスチャ設定にかかわらず、アトラステクスチャは結局、アトラスアセットの設定に一致するものになります。
スプライトアトラスアセットは、ランタイムにアクセス可能です。
ユーザーは別のスプライトアトラスアセットを作成し、それをプロジェクトの 1 つの既存のスプライトアトラスのバリアントとして宣言できます。次に、マスターのアトラステクスチャを複製し、乗数によってサイズを変更します。
Sprite Packer はデフォルトで無効になっていますが、 Editor settings (Edit -> Project Settings -> Editor) で設定できます。パッキングがビルド専用であり、プレイモードまたは常に有効でないビルドの場合、スプライトのパッキングモードを Disabled から、パッキングがビルドにのみ使われ、プレイモードには使用されない Enabled for Builds (パッキングがビルドにのみ使われ、プレイモードには使用されません)、または、Always Enabled (アトラスは、プレイモードに入る前とビルド用にパックされます) に変更します。
スプライトアトラスは Unity プロジェクトのアセットタイプの 1 つです。Project ビューで作成し、すぐに使用できます。また、メインメニューで Asset -> Create -> Sprite Atlas を選択して作成することもできます。
プロパティー | 機能 |
---|---|
型 | アトラスのタイプを Master か Variant Atlas に設定します。 |
Include in build | これを有効にすると、アトラスアセットは常にビルドに含まれます。 |
Allow Rotation | これを有効にすると、パックするためにスプライトを回転できます。 |
Tight Packing | これを有効にすると、長方形パッキングは行いません。 |
Read/Write Enabled | これを有効にすると、スクリプトでテクスチャデータの読み込みが可能になります。無効にすると、スクリプトでテクスチャデータの読み込みを行うことはできません。 |
Generate Mip Maps | これを有効にすると、ミップマップ生成が可能になります。ミップマップは縮小されたテクスチャで、画面上でとても小さくテクスチャを表示する場合に使います。 |
Filter Mode | テクスチャをどのようにフィルタリングするかを選択します。 |
Platform ごとのオーバーライドパネル | このセクションを使用して、デフォルトに設定できます (Default を選択します)。それから、特定のプラットフォームのボタンを押してそのプラットフォーム用にオーバーライドします。 https://docs.unity3d.com/Manual/class-TextureImporterOverride.html |
Objects For Packing | パックするアトラスに加えるオブジェクト。フォルダー、テクスチャ、個々のスプライトを加えることができます。 |
スプライトアトラスには、フォルダー、テクスチャ、スプライトを指定することができます。フォルダーを丸ごとスプライトアセットに指定することができます。サブフォルダーを含むそのフォルダー内のすべてのテクスチャがパックされます。個々のテクスチャを指定するときは、定義されたスプライトすべてが含まれます。 1 つのスプライトをアトラスに指定し、同じテクスチャ内の他のスプライトを指定しないことも可能です。
アセットをアトラスにするリストに加えるには、アトラスアセットを選択しリストに加えるか、インスペクターのリストにProject からドラッグアンドドロップします。フォルダー、テクスチャ、スプライトをアトラスに追加することができます。
生成されたアトラスの設定を行います。設定を変更すると、このアトラスには常に変更の印がつけられ、パックする段階で再びパックされます。
パックされたアトラスは、インスペクターの Pack Preview ボタンを押すとプレビューできます。これにより、このアトラスのパッキングが始まります。パッキングが完了すると、テクスチャがプレビューセクションに表示されます。
設定が変更されたすべてのアトラスは、プレイモードに入る前にパックされます ( Always Enabled が選択されている場合)。
ユーザーは別のスプライトアトラスアセットを作成し、それをプロジェクトの既存のスプライトアトラスのバリアントとして宣言できます。次に、マスターのアトラステクスチャを複製し、乗数によってサイズを変更します。
スプライトアトラスの Type を Variant に設定します
アトラスを Master Atlas のフィールドで指定します
バリアントの Scale 係数を設定します。値は 0.1 から 1 の範囲です。
マスターでなくバリアントアトラスをデフォルトとしてバインドするには、バリアントの Include in Build オプションをチェックし、マスターのオプションのチェックを外します。
両方をチェックすると、アトラス (master/variant) のうちの 1 つをランダムに入れます。両方ともチェックを外し、後述の遅延バインドを行う場合もあります。
変数としてスプライトアトラスを取るカスタムコンポーネントを作成します。
任意の既存のスプライトアトラスをフィールドに指定します。
プレイモードにするか、プレイヤーを実行します。
変数にアクセスします。すると、.GetSprites プロパティーを呼び出し、このアトラスにパックしたスプライトの配列を取得できるようになっています。
スプライトは実行時に「パックされているが、どのアトラスも参照していない」状態で開始でき、アトラスがバインドされるまで空白で表示されます。この挙動の利点は、例えばウェブからダウンロードしたアセットバンドルなど、起動時にアトラスのソースが利用できない場合に、ユーザーが後からバインドを行うことができる点です。
スプライトが任意のスプライトアトラスにパックされていても、スプライトアトラスがデフォルトとしてバインドされていない場合 (例えば、Build in Include オプションのチェックが外されている場合)、スプライトはシーン内では表示されません。
ユーザーはコールバック SpriteAtlas.atlasRequested を受け取ることができます。
このデリゲートメソッドは、バインドするアトラスのタグと、スプライトアトラスアセットを取り込む System.Action を提供します。ユーザーは、任意の方法 (スクリプト参照、Resources.load、アセットバンドル) でアセットを読み込み、そのアセットを System.Action に使用できます。