Texture WrapMode

unity 与 cocosCreator 的纹理设置都有WrapMode 选项

默认是 Clamp
如果使用图片拉伸则使用这个选项

Repeat
如果是希望图片平铺则使用这个选项

在这里插入图片描述
如果想要实现图片平铺的效果, 来看下两种纹理设置的对比。

设置为 Clamp 模式下
在这里插入图片描述
可以得到平铺的效果
但是可以看到线框模式下,图片被多次渲染。

设置为Repeat模式
在这里插入图片描述
线框模式可以看到只有两个三角形就可以渲染完成。效果上来说都实现了平铺, 但是设置Repeat 更加高效。

另外在高版本的Unity 中有Mirrror 选项,以及Mirror once 选项, 是用来实现翻转用的。但是设置了之后也没啥用,至今不知道这个怎么使用

这个错误是因为你正在尝试从一个不可读取的纹理中获取像素数据。通常情况下,Unity中的纹理是默认不可读取的,除非你明确地将其设置为可读取。 要解决这个问题,你可以将纹理的读写选项设置为可读取。以下是一种修改代码的方式: ```csharp using UnityEngine; public class ExtractGreenPixels : MonoBehaviour { public Renderer quadRenderer; // 这里假设你已经将Quad的Renderer组件拖拽到了该变量上 public string imagePath = "temp.png"; private void Start() { // 获取Quad的纹理 Texture2D quadTexture = (Texture2D)quadRenderer.material.mainTexture; // 设置纹理为可读取 quadTexture.wrapMode = TextureWrapMode.Clamp; quadTexture.filterMode = FilterMode.Point; quadTexture.Apply(); // 提取绿色像素 Color[] pixels = quadTexture.GetPixels(); for (int i = 0; i < pixels.Length; i++) { if (pixels[i].g > 0.5f && pixels[i].r < 0.5f && pixels[i].b < 0.5f) { // 绿色像素 Debug.Log("绿色像素坐标:(" + (i % quadTexture.width) + ", " + (i / quadTexture.width) + ")"); } } } } ``` 在这个示例中,我们首先获取了Quad的纹理。然后,我们将纹理的wrapMode设置为Clamp,filterMode设置为Point,并且调用Apply方法应用这些设置。这些设置将确保纹理可读取。 之后,我们可以像之前一样使用GetPixels函数来获取纹理的像素数据,并提取绿色像素。 请确保Quad的Renderer组件已经拖拽到了脚本的相应变量上,并且确保temp.png文件存在并正确设置了图片路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值