2D Sprite.Create isn't working
I've been having problems with the Sprite.Create function lately. I'm using C# to program a box with a border that can stretch and change size, but I didn't want the white border to stretch. I tried to create my own texture, and when I printed out the values of some pixels, it seemed like that worked fine. But when I used the texture for Sprite.Create, it didn't work and just showed a gray square. Here is the code:
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;
}
The scale variable is a Vector2 that I can change before drawing the sprite so it doesn't stretch. Thanks for your help.
Comment