以编程方式在图像中加载纹理并将边框设置为图像Unity

时间:2016-02-26 04:34:07

标签: image unity3d border

我正在开发一款无穷无尽的游戏,并希望在玩家死亡时拍摄快照。我几乎用Texture2D做到了这一点。我已经以编程方式在图像中完成了Load Texture。但想要为图像设置边框。我怎样才能做到这一点。?如何在运行时为该图像设置边框。?

此代码用于在我的播放器死亡时在运行时将纹理加载到图像。

var getModelData = @Html.Raw(Json.Encode(Model));    
$.ajax({
                    url: 'Views/AddressByCountry',
                    type: 'GET',
                    async: false,
                    data:  { model: getModelData , country: country },
                    contentType: 'application/json; charset=utf-8',
                    success: function(page) {
                        alert(page);
                        $('.addressarea').html(page);
                    }
                });

我想在运行时将边框设置为该图像。任何人都可以帮助我真的很感激。在此先感谢。

1 个答案:

答案 0 :(得分:0)

在将图像加载到Texture2D变量中之后执行此操作,这会将图像的边框更改为所需的任何颜色。

 //color should be a variable that holds the color of the border you want.

for (int i = 0; i< texture.width; i++){
    texture.SetPixel(i, 0, color); //top border
    texture.SetPixel(i, texture.height - 1, color); //bottom border
}

for (int j = 0; j < texture.height; j++){
    texture.SetPixel(0, j, color); // left border
    texture.SetPixel(texture.width - 1, j, color); //right border   
}
texture.Apply();

这将替换原始图像边缘上的所有像素,因此,如果需要这些边缘像素,则需要寻找其他解决方案。另外,texture.Apply需要一段时间才能运行,因此,如果您需要不断应用此边框,可能会遇到速度变慢的情况,但是您提到它只是在玩家死亡时才出现,因此这不成问题。