Texture2D 您所在的位置:网站首页 数组的位置这么快 Texture2D

Texture2D

2024-05-17 08:54| 来源: 网络整理| 查看: 265

Texture2D.GetPixels 切换到手册 public Color[] GetPixels (int miplevel); 参数 miplevel 要从其获取像素的多级渐进纹理级别。默认为 0。 返回

Color[] 一个数组,其中包含纹理的多级渐进纹理级别中的所有像素。

描述

从纹理中获取像素颜色。

该函数返回纹理的整个 Mip 级别的 像素颜色数组。返回的数组是一个平展 2D 数组,其中像素是从左到右、 从下到上排列(即,逐行排列)的。数组大小为所用 Mip 级别的宽度乘以高度。 默认 Mip 级别为零(基础纹理),在这种情况下,其大小只是该纹理的大小。 在一般情况下,Mip 级别的大小为 mipWidth=max(1,width>>miplevel), 高度也是如此。该纹理必须在 texture import settings 中设置 read/write enabled 标志,否则此函数将失败。在使用 Crunch 纹理压缩的纹理上,GetPixels 不可用。使用 GetPixels 可比反复调用 GetPixel 更快,尤其是 对于较大纹理而言。此外,GetPixels 还可访问单独的多级渐进纹理级别。对于大多数纹理来说, 使用 GetPixels32 甚至还要再快一些,GetPixels32 返回低精度颜色数据, 而不需要进行代价高昂的整数到浮点数转换。See Also: SetPixels, mipmapCount, GetPixelData, GetPixels32.

public Color[] GetPixels (int x, int y, int blockWidth, int blockHeight, int miplevel); 参数 x 要获取的像素数组的 x 位置。 y 要获取的像素数组的 y 位置。 blockWidth 要获取的像素数组的宽度长度。 blockHeight 要获取的像素数组的高度长度。 miplevel 要获取像素的多级渐进纹理级别。(可选)默认为 0。 返回

Color[] 纹理中已选择的像素的数组。

描述

获取像素颜色块。

该函数为上面的 GetPixels 的扩展版本; 它不返回整个 Mip 级别,而只返回从 x,y 开始的 blockWidth x blockHeight 区域。 块必须适合使用的 Mip 级别。返回的数组大小为 blockWidth*blockHeight。

// Get a rectangular area of a texture and place it into // a new texture the size of the rectangle. using UnityEngine; using System.Collections;public class ExampleClass : MonoBehaviour { // Source texture and the rectangular area we want to extract. public Texture2D sourceTex; public Rect sourceRect; void Start() { int x = Mathf.FloorToInt(sourceRect.x); int y = Mathf.FloorToInt(sourceRect.y); int width = Mathf.FloorToInt(sourceRect.width); int height = Mathf.FloorToInt(sourceRect.height); Color[] pix = sourceTex.GetPixels(x, y, width, height); Texture2D destTex = new Texture2D(width, height); destTex.SetPixels(pix); destTex.Apply(); // Set the current object's texture to show the // extracted rectangle. GetComponent().material.mainTexture = destTex; } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有