Объявление
public static void DrawTextureWithTexCoords(Rect position, Texture image, Rect texCoords);public static void DrawTextureWithTexCoords(Rect position, Texture image, Rect texCoords, bool alphaBlend);
Параметры
position | Прямоугольник на экране, чтобы нарисовать текстуру внутри. |
image | Текстура для отображения. |
texCoords | Как масштабировать изображение, если его соотношение сторон не соответствует соотношению сторон, которое нужно отрисовать. |
alphaBlend | Следует ли альфа-смешивать изображение с дисплеем (по умолчанию). Если false, изображение выводится на дисплей. |
Описание
Нарисуйте текстуру внутри прямоугольника с заданными координатами текстуры.
Используйте эту функцию для обрезки или разбиения изображения в заданном прямоугольнике. Второй RecttexCoords
описывает, как текстура корректируется, чтобы соответствовать положению Rect. Размер первого прямоугольника указан в пикселях; второй прямоугольник задается в диапазоне от 0,0 до 1,0.
Смотрите так же: GUI.color, GUI.contentColor.
using UnityEngine;
// Use DrawTextureWithTexCoords() to draw a texture. The texture is draw on the window
// inside a given pixel rectangle. The size of the drawn texture is based on the value
// of hor. This ranges from 0.5 to 1.25 so the bottom left half of the texture to a
// greater than normal value.
public class ExampleScript : MonoBehaviour
{
public Texture2D tex;
private Rect rect;
private float hor;
private Rect hs;
private Rect label;
void Start()
{
float center = Screen.width / 2.0f;
rect = new Rect(center - 200, 200, 400, 250);
hs = new Rect(center - 200, 125, 400, 30);
label = new Rect(center - 20, 155, 50, 30);
hor = 0.5f;
}
void OnGUI()
{
hor = GUI.HorizontalSlider(hs, hor, 0.5f, 1.25f);
GUI.Label(label, hor.ToString("F3"));
GUI.DrawTextureWithTexCoords(rect, tex, new Rect(0.0f, 0.0f, hor, hor));
}
}