给纹理边框 - SetPixel

时间:2015-02-25 01:17:12

标签: image unity3d textures border

我正在尝试动态添加边框到我的纹理。到目前为止,我在顶部和底部都有一个边框。但努力争取左右边界。这就是我到目前为止所做的:

var i = image;
var pixels : Color[] = i.GetPixels(0, 0, i.width, i.height, 0); 
var br : int = 1;

for(var p = 0; p < pixels.Length; p++){

    var b : int = 30;

    //Bottom
    if(p < i.width * b)
        pixels[p] = new Color(1,0,0,1);

    //Top
    if(p > (i.height * i.width) - (i.width * b))
        pixels[p] = new Color(1,0,0,1);


    //int when a new row of pixels has began
    if(p > i.width * br)
        br++;

}

从左下角到右上角读取像素。我似乎无法理解数学。

由于

1 个答案:

答案 0 :(得分:0)

获取像素x位置的最简单方法可能是使用模运算符(%),它返回余数。

以下是计算x位置并根据以下内容设置边框的代码:

// Left
if(p % i.width < b)
    pixels[p] = new Color(1,0,0,1);

// right
if(p % i.width > i.width - b)
    pixels[p] = new Color(1,0,0,1);