我最近遇到了 Sprite.Create 函数的问题。我正在使用 C# 编写一个带有可以拉伸和更改大小的边框的框,但我不希望白色边框拉伸。我尝试创建自己的纹理,当我打印出一些像素的值时,看起来效果很好。但是当我将纹理用于 Sprite.Create 时,它不起作用,只是显示了一个灰色方块。这是代码:
`void updateSprite(){
transform.localScale = new Vector3 (scale.x, scale.y, 0);
SpriteRenderer rend = GetComponent<SpriteRenderer>();
Texture2D tex = new Texture2D ((int)(100*scale.x), (int)(100*scale.y));
for (int y = 0; y < tex.height; y++) {
for(int x = 0; x < tex.width; x++){
if(y < 2 || x < 2 || y >= tex.height-2 || x >= tex.width-2){
tex.SetPixel(x, y, Color.white);
}else{
tex.SetPixel(x, y, Color.black);
}
}
}
print (tex.GetPixel (0, 0) + "," + tex.GetPixel(3, 3) + "," + tex.GetPixel(tex.width-1, tex.height-1));
Sprite spr = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f));
rend.sprite = spr;
}`
scale 变量是一个 Vector2,我可以在绘制精灵之前更改它,这样它就不会拉伸。谢谢你的帮助。我正在使用 Unity 5,如果这与它有关的话。