在C#Unity3D中,还有其他方法可以在Texture2D的样条曲线内外进行绘制吗?

时间:2017-11-22 08:14:10

标签: c# unity3d

我想拍这张照片。 enter image description here

为了实现这一点,我已经配置了这段代码。

        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;

此代码显示了这些结果。

enter image description here

这个结果意味着y值为0,而for语句中的x值是宽度日期意图的结果(不是Color.Clear,即使它在区域之外)。

为了纠正这个问题,我设置了像素的颜色  指定y值时,我将临时颜色设置为Color.Clear。 enter image description here

y == 0的底部仍然是彩色的。即使我没有指定,y值为负的部分也会自动更改颜色。

目标RectTransform的大小  它匹配您拥有的Texture2D的大小。 我错过了什么吗?作为显示图像的一部分,RawImage或Image显示相同的结果。

0 个答案:

没有答案