簡體   English   中英

統一導入WWW后如何更改子畫面的單位像素數?

[英]How to change pixels per unit for sprite after importing with WWW in unity?

我目前正在制作一個關卡編輯器,用戶可以從文件中導入切片,並且當前可以正常工作,除了我希望將每個導入的精靈的單位像素更改為32

這是我的代碼:

//Get tiles from file
         StreamReader reader = new StreamReader(Application.dataPath + "/../Maps/" + mapName + "/Tiles/tiles.txt");
         string line = reader.ReadLine ();

         while (!string.IsNullOrEmpty (line)) {
             string[] param = line.Split (',');
             foreach (TileTexture t in tileTextures) {
                 if (t.name == param [0]) {
                     Sprite sprite = Sprite.Create (t.texture, new Rect (0, 0, t.texture.width, t.texture.height), new Vector2 (0, 0));
                     sprite.pixelsPerUnit = 32;//THIS LINE DOESNT WORK, GIVES READONLY ERROR
                     Tile tile = new Tile (param[0], sprite, new Vector2(float.Parse(param[1]), float.Parse(param[2])));
                     tile.sprite.texture.filterMode = FilterMode.Point;
                     tiles.Add (tile);
                 }
             }

             line = reader.ReadLine ();
         }

查看函數Sprite.Create(),我們看到函數簽名為

public static Sprite Create(Texture2D texture, 
                            Rect rect, 
                            Vector2 pivot, 
                            float pixelsPerUnit = 100.0f, 
                            uint extrude = 0, 
                            SpriteMeshType meshType = SpriteMeshType.Tight, 
                            Vector4 border = Vector4.zero);

我們看到可以將pixelsPerUnit作為可選參數傳遞到函數中。 您只能在此處執行此操作,以后就無法更改,因為您已經發現, pixelsPerUnit字段是readonly字段(意味着無法更改)。 因此,您只需要在此處傳遞32f 正確的代碼是

if (t.name == param [0]) {
                 Sprite sprite = Sprite.Create (t.texture, new Rect (0, 0, t.texture.width, t.texture.height), new Vector2 (0, 0), 32f);
                 Tile tile = new Tile (param[0], sprite, new Vector2(float.Parse(param[1]), float.Parse(param[2])));
                 tile.sprite.texture.filterMode = FilterMode.Point;
                 tiles.Add (tile);
             }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM