Version: 2022.2
public static void DrawTexture (Rect screenRect, Texture texture, Material mat= null, int pass= -1);
public static void DrawTexture (Rect screenRect, Texture texture, int leftBorder, int rightBorder, int topBorder, int bottomBorder, Material mat= null, int pass= -1);
public static void DrawTexture (Rect screenRect, Texture texture, Rect sourceRect, int leftBorder, int rightBorder, int topBorder, int bottomBorder, Material mat= null, int pass= -1);
public static void DrawTexture (Rect screenRect, Texture texture, Rect sourceRect, int leftBorder, int rightBorder, int topBorder, int bottomBorder, Color color, Material mat= null, int pass= -1);

参数

screenRect 屏幕上用于纹理的矩形。在像素坐标系中,左上角为 (0,0)。
texture 要绘制的 Texture
sourceRect 要使用的纹理区域。在标准化坐标系中,左下角为 (0,0)。
leftBorder 左侧不受缩放比例影响的像素数。
rightBorder 右侧不受缩放比例影响的像素数。
topBorder 顶部不受缩放比例影响的像素数。
bottomBorder 底部不受缩放比例影响的像素数。
color 调制输出的 Color。中性值为 (0.5, 0.5, 0.5, 0.5)。设置为着色器的顶点颜色。
mat 可用于绘制纹理的自定义 Material。如果传递 null,则使用具有 Internal-GUITexture.shader 的默认材质。
pass 如果为 -1(默认值),绘制材质中的所有通道。否则,仅绘制给定通道。

描述

在屏幕坐标系中绘制纹理。

如果要在 OnGUI 代码中绘制纹理,则只应从 EventType.Repaint 事件执行 该操作。对于 GUI 代码,使用 GUI.DrawTexture 可能更好。

using UnityEngine;

public class Example : MonoBehaviour { // Draws a texture on the screen at 10, 10 with 100 width, 100 height.

Texture aTexture;

void OnGUI() { if (Event.current.type.Equals(EventType.Repaint)) { Graphics.DrawTexture(new Rect(10, 10, 100, 100), aTexture); } } }