c# - 如何使用高度和宽度调整 Texture2D 的大小?
问题描述
我试图调整纹理的大小和宽度以及它的显示索引超出宽度/高度
纹理需要调整大小,因为我在其他纹理上使用它以应用于特定坐标,所以我无法调整纹理图形的大小是我的 texture2D
graphics.Resize((horizontalx - Horizontaly), (verticalx - verticaly), TextureFormat.RGBA32, false);//创建具有高度和宽度的纹理
SetPixels32 只能在 RGBA32 或 BGRA32 纹理上调用,但在 TextureFormat(12) UnityEngine.Texture2D:SetPixels32(Color32[]) 上调用
解决方案
调整大小的最简单方法可能是调用 Graphics.Blit 以新的 RenderTexture 为目标并使用您的 Texture2D 作为源。如果之后需要它成为 Texture2D,可以在 RenderTexture 上调用 ReadPixels
using UnityEngine;
using UnityEngine.UI;
public class Resizer : MonoBehaviour {
public Texture2D inputtexture2D;
public RawImage rawImage;
[ExposeMethodInEditor]
void Start()
{
rawImage.texture=Resize(inputtexture2D,200,100);
}
Texture2D Resize(Texture2D texture2D,int targetX,int targetY)
{
RenderTexture rt=new RenderTexture(targetX, targetY,24);
RenderTexture.active = rt;
Graphics.Blit(texture2D,rt);
Texture2D result=new Texture2D(targetX,targetY);
result.ReadPixels(new Rect(0,0,targetX,targetY),0,0);
result.Apply();
return result;
}
}
推荐阅读
- elasticsearch - azure evenhub 插件和 Filebeat azure 模块的区别
- arrays - 如果在双引号内,则忽略逗号上的 awk 拆分字符串
- android - 运行使用 React Native 构建的移动应用程序的最低硬件和软件要求
- javascript - 在数据库中存储已加入临时事件的(用户)列表的最佳方法?
- python - 如何重新缩放一系列比率值,从 1 而不是 0 开始,而不会失去静态意义
- python - 使用 private.txt 安装 python 包不起作用
- haskell - 如何在不翻译为 >>= 组合的情况下快速阅读 do 符号?
- machine-learning - 机器学习模型,用于查找网页上对象的权重/贡献
- sql - 计算每个 ID 的项目数
- android - 如何在 Kotlin 中使用 RecyclerView