中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Unity中使用TextAsset讀取配置文件

發布時間:2021-04-13 17:48:03 來源:億速云 閱讀:787 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關怎么在Unity中使用TextAsset讀取配置文件,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

1 支持文件類型

.txt

.html

.htm

.xml

.bytes

.json

.csv

.yaml

.fnt

2 尋找文件

1 //Load texture from disk

TextAsset bindata= Resources.Load("Texture") as TextAsset;
        Texture2D tex = new Texture2D(1,1);
        tex.LoadImage(bindata.bytes);

2 直接在編輯器中賦值

public TextAsset textFile;

3 配置文件通常分行配置屬性

例如:

英雄名稱,等級,生命,攻擊

hero1,1,1,1
        hero2,1,1,1
    string[] lines = textFile.text.Split("\n"[0]); 可以讀出屬性
        lines[0] = "英雄名稱,等級,生命,攻擊"
        lines[1] = "hero1,1,1,1"
        lines[2] = "hero2,1,1,1"

然后可以讀出每條數據的具體屬性

for (int i = 0; i < lines.Length - 2; i++) {
            string[] parts = lines[i + 1].Split(","[0]);
        }
    parts[0] = "hero1" parts[1] = "1" parts[2] = "1" parts[2] = "1

補充:Unity加載TextAsset中的內容為空

需求需要從Resources目錄下加載json文件,于是在目錄下創建了個txt文本,然后修改后綴名為.Json,

用Resource.Load<TextAsset>() 發現TextAsset.text竟然為空,里面什么都沒有,以為是.Json首字母大寫的緣故,于是改為.json,結果還沒有用,

新開工程卻發現用腳本生成的json文件卻是可以獲取到的,再仔細檢查發現選中json文件的時候屬性面板竟然什么都沒顯示出來,于是懷疑json文件不正確沒有被unity識別到,用vs高級保存選項發現文本竟然是GBK2312格式,改為UTF-8格式發現可以顯示出來并能讀取到text。

于是懷疑是創建txt文本時默認編碼格式不正確,發現默認編碼格式是ASCII格式,看來以后創建json的時候更要注意編碼格式的問題了。

補充:Unity 簡易讀取配置文件內容(txt,懶人用)

翻以前別人寫的一個項目,看到讀取本地配置文件的,目前雖然不太懂,但是先放著,估摸以后牛B了就看懂了

首先自定義一個config類:

using UnityEngine;
using System.Collections;
using System;
[Serializable] //一定要有,同時不能繼承MonoBehaviour
public class Config  {
    public int Num1; //我文檔里有2個int,2個string類型
    public int Num2;
    public string String1;
    public string String2;
    // Use this for initialization
    void Start () {
}
    private static Config _data;
    public static Config _Data
    {
        get
        {
            if (_data == null)
            {
                string json = System.IO.File.ReadAllText(Application.streamingAssetsPath + "/test.txt");
                _data = JsonUtility.FromJson<Config>(json);
            }
            return _data;
        }
    }   
}

然后在unity 的StreamingAssets文件夾下創建個test.txt

里面內容:(一定要有花括號)

{"Num1":30,"Num2":60,"String1":"aaa","String2":"bbb"}

然后再其他腳本里,直接調用就好了

例如:

using UnityEngine;
using System.Collections;
public class LoadConfig : MonoBehaviour {
// Use this for initialization
void Start () {
        print(Config._Data.Num1);
        print(Config._Data.String2);
    }
// Update is called once per frame
void Update () {
}
}

2017.3.27更新:自己又理解了一點

如果要讀取網頁某天氣信息,但是不止一個花括號,分了幾層,需要怎么做?

例如信息:

{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"18","WD":"東南風","WS":"1級","SD":"17%","WSE":"1","time":"17:05","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暫無實況","qy":"1011","rain":"0"}}

上面的就不多復述,大概思路就是再建立一個類保存二級信息

Config類修改如下(之前的全部刪除):

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
[Serializable]  //一定要有,同時不能繼承MonoBehaviour
public class Config  {
    public Weatherinfo weatherinfo; //這里的weatherinfo 就是上面信息的第一層weatherinfo,建立父級保存信息(名字要對應天氣的weatherinfo)
}
[Serializable]
public class Weatherinfo //weatherinfo下的信息保存,類里的city 對應信息里的city,一次類推,我就寫2個了;
{
    public string city;
    public int cityid;
}

再新建一個名字為LoadWWW的腳本,用于讀取網絡的數據:

using UnityEngine;
using System.Collections;
using System;
public class LoadWWW : MonoBehaviour {
    Config _config = new Config();
// Use this for initialization
void Start () {
        StartCoroutine("load");
        Invoke("LoadMessage", 1f);
}
// Update is called once per frame
void Update () {
}
    IEnumerator load()
    {
        WWW w = new WWW("http://www.weather.com.cn/data/sk/101010100.html");//加載某網頁數據,根據自己需求改
        yield return w;
        string json = w.text; 
        print(json);
        _config = JsonUtility.FromJson<Config>(json);       
    }
    void LoadMessage()
    {
        print(_config.weatherinfo.city);
        print(_config.weatherinfo.cityid);
    }
}

關于怎么在Unity中使用TextAsset讀取配置文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沙洋县| 凌海市| 新乐市| 白朗县| 新郑市| 襄汾县| 屏东市| 铜川市| 仁怀市| 元阳县| 高邮市| 读书| 吉首市| 福清市| 沙湾县| 雷州市| 灵武市| 澄迈县| 安溪县| 禄丰县| 岚皋县| 南开区| 绥滨县| 利津县| 丰都县| 柘城县| 韶关市| 邻水| 遂溪县| 岑溪市| 兖州市| 德庆县| 灵川县| 福清市| 冀州市| 方山县| 黄平县| 宁远县| 九龙城区| 泗洪县| 旬阳县|