Unity2D:Sprite.Create 无法满足我的需要

Unity2D: Sprite.Create doesn't work with what I need it to

我最近在使用 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,我可以在绘制 sprite 之前更改它,这样它就不会拉伸。 谢谢你的帮助。我正在使用 Unity 5,如果这与它有任何关系的话。

我想通了。其实很简单。首先,我必须在编辑器中向 SpriteRenderer 添加一个 "dummy" 纹理。我还必须添加 tex.Apply() 以应用更改。