Unity Record 4.2 - ストレージ - json ファイルからタイル パスを取得する

この記事は最初にブログで公開されました: https://mwhls.top/4813.html
画像なし/形式エラー/今後の更新については、最初のページをご覧ください。
詳細な更新情報については、mwhls.topをご覧ください
。質問や批判がある場合は、メッセージを残していただけます。プライベート メッセージには返信されません。

概要: Unity レコード

概要: json ファイルからタイル マテリアルのパスを取得します。

保存計画決定 - 2023/08/15
  • GPTに問い合わせたところ、タイルマップはカメラの位置に基づいてレンダリングされるため、サイズが大きすぎるマップは読み込みパフォーマンスに影響しないとのことです。
  • GPT ではさまざまな方法が推奨されていますが、最初は json+圧縮を使用します。
  • 以下はテストケースです。
    {
    
    
        "version": "0.0.1",
        "date": "20230815",
        "tiles":{
    
    
            "BlockSoilGrassySoil":{
    
    
                "ID": 0,
                "name": "Grassy Soil",
                "description": "",
                "path": "Tilemap/Block/Soil/BlockSoilGrassySoil"
            }
        }
    }
Newtonsoft.Json のインストール-2023/08/16
jsonファイルから素材を読み込む - 2023/08/16
  • 以下のようにマテリアル情報を読み込みます。
    • まず、2 つの構造が json 形式と一致しているため、ファイルを使用してそれらを読み込み、「Newtonsoft.Json」を通じて json に変換します。
    using Newtonsoft.Json;
    
    public struct TileInfo{
    
    
        public int ID;
        public string name;
        public string description;
        public string path;
    };
    
    public struct TilesInfo{
    
    
        public string version;
        public string date;
        public Dictionary<string, TileInfo> tiles;
    }
    
    public class TilemapBase : MonoBehaviour{
    
    
        public static TilesInfo tiles_info;
    
        void Start(){
    
    
            load_tiles_info();
        }
    
        void load_tiles_info(){
    
    
            string tiles_info_path = "Assets/Resources/Saved/TilesInfo.json";
            string jsonText = File.ReadAllText(tiles_info_path);
            tiles_info = JsonConvert.DeserializeObject<TilesInfo>(jsonText);
        }
    }
    
  • 以前にハードコーディングされたマテリアル パスを置き換えます
    • 注: 命名スタイルを変更したため、前の記事のパスはこの記事のパスとは異なります。
    string tile_path = "Tilemap/Block/Soil/BlockSoilGrassySoil";
    ->
    string tile_path = TilemapBase.tiles_info.tiles["BlockSoilGrassySoil"].path;

おすすめ

転載: blog.csdn.net/asd123pwj/article/details/132558672