Version: 5.4 (switch to 5.5b)
言語English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Texture2D.PackTextures

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

マニュアルに切り替える
public function PackTextures(textures: Texture2D[], padding: int, maximumAtlasSize: int = 2048, makeNoLongerReadable: bool = false): Rect[];
public Rect[] PackTextures(Texture2D[] textures, int padding, int maximumAtlasSize = 2048, bool makeNoLongerReadable = false);

Parameters

textures アトラス内でパックされたテクスチャの配列
padding パックされたテクスチャ間のパディングピクセル数。
maximumAtlasSize 結果のテクスチャの最大サイズ
makeNoLongerReadable テクスチャをあらかじめ読みやすくマークしておくかどうか

Returns

Rect[] アトラス内にある各テクスチャの UV 座標を含む長方形の配列、パッキングに失敗した場合は null。

Description

テクスチャアトラスに複数のテクスチャをパックします

この関数は、指定されたテクスチャから作られたアトラスと現在のテクスチャに置き換えられます。 任意のテクスチャのサイズ・形式・ミップマップは、パッキング後に変更することができます。

結果のテクスチャアトラスは、すべての入力のテクスチャに合わせて、必要に応じて同じ大きさになります。 テクスチャアトラスに収まらない場合、入力テクスチャは必ずしも望んだサイズにはならず、 アトラス側でサイズに合うように縮小されます。

すべての入力テクスチャが DXT1 圧縮されている場合は、アトラスは DXT1 形式になります。 すべての入力テクスチャが DXT1DXT5 形式で圧縮されている場合は、アトラスは DXT5 形式になります。 任意の入力テクスチャが圧縮されていない場合には、 アトラスは ARGB32 非圧縮形式になります。

入力テクスチャのどれもミップマップを持っていない場合は、アトラスもミップマップがありません。

非 0 パディングを使用、アトラス圧縮、ミップマップを圧縮しているされている場合は、 下位レベルのミップマップは、圧縮による制限のために正確に元のテクスチャと同じでない可能性があります。

makeNoLongerReadable が true の場合、すでに読み書きメモリは GPU にアップロードした後に解放されませんように、テクスチャがマークされます。 デフォルトでは makeNoLongerReadable は false に設定されている。 makeNoLongerReadable のデフォルト設定は False に設定されている

	// Source textures.
	var atlasTextures: Texture2D[];

// Rectangles for individual atlas textures. var rects: Rect[];

function Start () { // Pack the individual textures into the smallest possible space, // while leaving a two pixel gap between their edges. var atlas = new Texture2D(8192, 8192); rects = atlas.PackTextures(atlasTextures, 2, 8192); }
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Texture2D[] atlasTextures; public Rect[] rects; void Start() { Texture2D atlas = new Texture2D(8192, 8192); rects = atlas.PackTextures(atlasTextures, 2, 8192); } }