EditorGUI.DrawPreviewTexture

Switch to Manual
public static void DrawPreviewTexture (Rect position, Texture image, Material mat= null, ScaleMode scaleMode= ScaleMode.StretchToFill, float imageAspect= 0);

Parameters

position@param position Прямоугольник на экране для рисования текстуры внутри.
image@param image Текстура Texture для отображения.
mat@param mat Материал, используемый при отрисовке текстуры.
scaleMode@param scaleMode как масштабировать изображение, когда его соотношение сторон не совпадает с соотношением сторон области, в которой будет отрисовка.
imageAspect@param imageAspect Соотношение сторон, используемое для исходного изображения. Если 0 (по умолчанию), будет использовано соотношение сторон самого изображения.

Description

Рисует текстуру внутри прямоугольника.

If mat is null (the default), an appropriate material will be chosen for a RGBM or doubleLDR lightmap or a normal map and the fallback blit material will be chosen otherwise.


Preview Texture in an Editor Window.

// Load a texture, display the texture, display its alpha channel and
// show a preview of the inverted texture

class EditorGUITextures extends EditorWindow {

var texture : Texture2D; var invertedTexture : Texture2D; var showInverted = false;

@MenuItem("Examples/Texture Previewer") static function Init() { var window = GetWindow(EditorGUITextures); window.position = Rect(0,0,400, 200); window.Show(); }

function OnGUI() { texture = EditorGUI.ObjectField(Rect(3,3,200,20), "Add a Texture:", texture, Texture); if(GUI.Button(Rect(208,3, position.width - 210, 20),"Process Inverted")) { if(invertedTexture) DestroyImmediate(invertedTexture); //Copy the new texture invertedTexture = new Texture2D(texture.width, texture.height, texture.format, (texture.mipmapCount != 0)); for (var m : int = 0; m < texture.mipmapCount; m++) invertedTexture.SetPixels(texture.GetPixels(m), m); InvertColors(); showInverted = true; } if(texture) { EditorGUI.PrefixLabel(Rect(25,45,100,15),0,GUIContent("Preview:")); EditorGUI.DrawPreviewTexture(Rect(25,60,100,100),texture); EditorGUI.PrefixLabel(Rect(150,45,100,15),0,GUIContent("Alpha:")); EditorGUI.DrawTextureAlpha(Rect(150,60,100,100),texture); EditorGUI.PrefixLabel(Rect(275,45,100,15),0,GUIContent("Inverted:")); if(showInverted) EditorGUI.DrawPreviewTexture(Rect(275,60,100,100),invertedTexture); if(GUI.Button(Rect(3,position.height - 25, position.width-6,20),"Clear texture")) { texture = EditorGUIUtility.whiteTexture; showInverted = false; } } else { EditorGUI.PrefixLabel( Rect(3,position.height - 25,position.width - 6, 20), 0, GUIContent("No texture found")); } }

function InvertColors() { for (var m : int = 0; m < invertedTexture.mipmapCount; m++) { var c : Color[] = invertedTexture.GetPixels(m); for (var i : int = 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; } invertedTexture.SetPixels(c, m); } invertedTexture.Apply(); } function OnInspectorUpdate() { Repaint(); } }