为了实现这一点,我已经配置了这段代码。
Texture2D texture2D = new Texture2D(Width, Height);
float step = (Width - Min_x) / (float)Height;
for (int y=0;y<Height;y++)
{
//max = The last x coordinate inside the area at the current y coordinate
int max = (int)(Min_x + (step * y));
for(int x=0;x<Width;x++)
{
Color color =
x>max? //=Area Outside
Color.clear:
//=Area Inside. Divide the border and non-border areas.
y < border || //Down Border
y >= Height - border || //Up Border
x < border || //Left Border
x > max - border ? //Right Border
Color.red : new Color(1, 1, 1, A_Channel/255f);
texture2D.SetPixel(x, y, color);
}
}
texture2D.Apply();
Target.texture = texture2D;
此代码显示了这些结果。
这个结果意味着y值为0,而for语句中的x值是宽度日期意图的结果(不是Color.Clear,即使它在区域之外)。
为了纠正这个问题,我设置了像素的颜色 指定y值时,我将临时颜色设置为Color.Clear。
y == 0的底部仍然是彩色的。即使我没有指定,y值为负的部分也会自动更改颜色。
目标RectTransform的大小 它匹配您拥有的Texture2D的大小。 我错过了什么吗?作为显示图像的一部分,RawImage或Image显示相同的结果。