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

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

AssetPostprocessor.OnPostprocessTexture(Texture2D)

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える

説明

この関数をサブクラスに追加してテクスチャのインポート完了の直後に通知を取得します

テクスチャは必要に応じて圧縮され、ディスクに保存されます。

この時点で圧縮形式を選択するには遅すぎますが、texture.Compress を利用してテクスチャを圧縮することはまだ可能です。 ただし、これは推奨されませんし圧縮形式はエディターに表示されません。 テクスチャのファイル名や他の属性に基づいて圧縮形式を変更したい場合は、 OnPreprocessTexture を使用します。

以下のサンプルのようにテクスチャを修正する場合、読み込み可能にしなくてはいけません。 インポート設定で読み取り可能フラグをエディター (読み取り書き込み可能) や、 OnPreprocessTexture 関数で True に設定しなくてはなりません。テクスチャがランタイムに読み取り可能である必要がない場合は、 texture.Apply(true, true) を使用してミップマップを更新し、ランタイムにテクスチャを読み込み不可にしてください。


        
using UnityEditor;
using UnityEngine;
using System.Collections;

// Postprocesses all textures that are placed in a folder // "invert color" to have their colors inverted. public class InvertColor : AssetPostprocessor { void OnPostprocessTexture(Texture2D texture) {

// Only post process textures if they are in a folder // "invert color" or a sub folder of it. string lowerCaseAssetPath = assetPath.ToLower(); if (lowerCaseAssetPath.IndexOf("/invert color/") == -1) return; for (int m = 0; m < texture.mipmapCount; m++) { Color[] c = texture.GetPixels(m); for (int i = 0; i < c.Length; i++) { c[i].r = 1 - c[i].r; c[i].g = 1 - c[i].g; c[i].b = 1 - c[i].b; } texture.SetPixels(c, m); } // Instead of setting pixels for each mip map levels, you can also // modify only the pixels in the highest mip level. And then simply use // texture.Apply(true); to generate lower mip levels. } }