Texture2D 二维纹理

社会主义新天地 提交于 2019-12-29 21:27:32
Texture2D 二维纹理
纹理处理类。使用这个动态创建纹理或修改现有纹理资源。

变量
mipmapCount  这个纹理有多少mipmap等级(只读)
format       纹理中像素的数据格式(只读)

函数

SetPixel 在坐标(x,y)设置一个像素的颜色
SetPixel (x : int, y : int, color : Color)

GetPixel 获取坐标(x,y)处像素颜色
GetPixel (x : int, y : int)

GetPixelBilinear 返回在正规化纹理坐标(u,v)处的过滤的像素颜色。
GetPixelBilinear (u : float, v : float)
注:坐标U和V 是从0.0到1.0的值,就像是网格模型上的UV坐标

SetPixels 设置一块像素颜色
SetPixels (x : int, y : int, blockWidth : int, blockHeight : int, colors : Color[], miplevel : int = 0)
注:从x,y点开始的blockWidth(块的宽)乘以blockHeight(块的高)的区域

LoadImage 根据字节数组载入图片
LoadImage (data : byte[])
public class example : MonoBehaviour {
    public TextAsset imageTextAsset;
    void Start() {
        Texture2D tex = new Texture2D(4, 4);
        tex.LoadImage(imageTextAsset.bytes);
        renderer.material.mainTexture = tex;
    }
}

GetPixels 获取一块像素颜色
GetPixels (x : int, y : int, blockWidth : int, blockHeight : int, miplevel : int = 0) : Color[]

Apply 实际应用前面的SetPixel和Setpixels的更改
Texture2D texture = new Texture2D(128, 128);
texture.Apply();

Resize 调整纹理大小 若要调整纹理,这个纹理需要导入设置为Is Readable(可读)
Resize (width : int, height : int) : bool

PackTextures 打包多个纹理到纹理集合中,返回Rect[]类型,矩形的数组包含每个输入的纹理的UV坐标集合
PackTextures (textures : Texture2D[], padding : int, maximumAtlasSize : int = 2048) : Rect[]
textures 纹理数组被打包到集合中
padding  打包纹理的像素间距
maximumAtlasSize  调整纹理的最大尺寸

ReadPixels 读取屏幕像素信息并存储为纹理数据
ReadPixels (source : Rect, destX : int, destY : int, recalculateMipMaps : bool = true) : void
如果 recalculateMipMaps 设置为真,这个贴图的mipmaps就会更新
如果 recalculateMipMaps设置为假,你需要调用Apply重新计算它们

Inherited members继承成员

width    以像素为单位的贴图宽度 (只读)
height    以像素为单位的贴图的高度(只读)
filterMode    贴图的过滤模式
anisoLevel 贴图的各向异性过滤等级。此变量的值的范围从 1 - 9 ,其中 1 等于没有过滤而9 等于完全过滤。值越大,贴图在浅角度看时显得更清
晰。较低的值表示贴图在浅角度显得更模糊。
wrapMode 循环模式(重复或强制拉伸)在贴图边界以设置贴图的重复模式的方式避免不真实的情况,使用强制贴图边界拉伸 TextureWrapMode.Clamp 
或者贴图重复平铺 TextureWrapMode.Repeat
mipMapBias 多级纹理偏移量

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!