欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Unity 讀取文件 TextAsset讀取配置文件方式

 更新時(shí)間:2021年04月13日 14:41:02   作者:gd_2015  
這篇文章主要介紹了Unity 讀取文件 TextAsset讀取配置文件的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

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 配置文件通常分行配置屬性

例如:

英雄名稱,等級(jí),生命,攻擊

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

然后可以讀出每條數(shù)據(jù)的具體屬性

        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

補(bǔ)充:Unity加載TextAsset中的內(nèi)容為空

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

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

新開工程卻發(fā)現(xiàn)用腳本生成的json文件卻是可以獲取到的,再仔細(xì)檢查發(fā)現(xiàn)選中json文件的時(shí)候?qū)傩悦姘寰谷皇裁炊紱]顯示出來,于是懷疑json文件不正確沒有被unity識(shí)別到,用vs高級(jí)保存選項(xiàng)發(fā)現(xiàn)文本竟然是GBK2312格式,改為UTF-8格式發(fā)現(xiàn)可以顯示出來并能讀取到text。

于是懷疑是創(chuàng)建txt文本時(shí)默認(rèn)編碼格式不正確,發(fā)現(xiàn)默認(rèn)編碼格式是ASCII格式,看來以后創(chuàng)建json的時(shí)候更要注意編碼格式的問題了。

補(bǔ)充:Unity 簡(jiǎn)易讀取配置文件內(nèi)容(txt,懶人用)

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

首先自定義一個(gè)config類:

using UnityEngine;
using System.Collections;
using System;
[Serializable] //一定要有,同時(shí)不能繼承MonoBehaviour
public class Config  {
    public int Num1; //我文檔里有2個(gè)int,2個(gè)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文件夾下創(chuàng)建個(gè)test.txt

里面內(nèi)容:(一定要有花括號(hào))

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

然后再其他腳本里,直接調(diào)用就好了

例如:

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更新:自己又理解了一點(diǎn)

如果要讀取網(wǎng)頁(yè)某天氣信息,但是不止一個(gè)花括號(hào),分了幾層,需要怎么做?

例如信息:

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

上面的就不多復(fù)述,大概思路就是再建立一個(gè)類保存二級(jí)信息

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

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

再新建一個(gè)名字為L(zhǎng)oadWWW的腳本,用于讀取網(wǎng)絡(luò)的數(shù)據(jù):

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");//加載某網(wǎng)頁(yè)數(shù)據(jù),根據(jù)自己需求改
        yield return w;
        string json = w.text; 
        print(json);
        _config = JsonUtility.FromJson<Config>(json);       
    }
    void LoadMessage()
    {
        print(_config.weatherinfo.city);
        print(_config.weatherinfo.cityid);
    }
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Qt之調(diào)用C#的動(dòng)態(tài)庫(kù)的解決方法

    Qt之調(diào)用C#的動(dòng)態(tài)庫(kù)的解決方法

    這篇文章給大家介紹了Qt之調(diào)用C#的動(dòng)態(tài)庫(kù)的解決方法,環(huán)境使用的是VS2019+Qt5.12,感興趣的朋友一起看看吧
    2021-10-10
  • C#隊(duì)列Queue多線程用法實(shí)例

    C#隊(duì)列Queue多線程用法實(shí)例

    這篇文章主要介紹了C#隊(duì)列Queue多線程用法,實(shí)例分析了隊(duì)列的相關(guān)使用技巧,需要的朋友可以參考下
    2015-05-05
  • 淺談二叉查找樹的集合總結(jié)分析

    淺談二叉查找樹的集合總結(jié)分析

    本篇文章是談二叉查找樹進(jìn)行了詳細(xì)的總結(jié)分析,需要的朋友參考下
    2013-05-05
  • 在C#中使用二叉樹實(shí)時(shí)計(jì)算海量用戶積分排名的實(shí)現(xiàn)詳解

    在C#中使用二叉樹實(shí)時(shí)計(jì)算海量用戶積分排名的實(shí)現(xiàn)詳解

    這篇文章主要介紹了在C#中使用二叉樹實(shí)時(shí)計(jì)算海量用戶積分排名的實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 淺談C#泛型的用處與特點(diǎn)

    淺談C#泛型的用處與特點(diǎn)

    泛型是 2.0 版 C# 語言和公共語言運(yùn)行庫(kù) (CLR) 中的一個(gè)新功能。泛型將類型參數(shù)的概念引入 .NET Framework,類型參數(shù)使得設(shè)計(jì)如下類和方法成為可能:這些類和方法將一個(gè)或多個(gè)類型的指定推遲到客戶端代碼聲明并實(shí)例化該類或方法的時(shí)候
    2013-09-09
  • 解析.NET中幾種Timer的使用

    解析.NET中幾種Timer的使用

    本文主要對(duì).NET中4個(gè)Timer類,及其用法進(jìn)行梳理,具有很好參考價(jià)值,需要的朋友一起來看下吧
    2016-12-12
  • C# 基礎(chǔ)入門--變量

    C# 基礎(chǔ)入門--變量

    本文主要介紹了C#中變量的基礎(chǔ)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • C#中的delegate委托類型基本學(xué)習(xí)教程

    C#中的delegate委托類型基本學(xué)習(xí)教程

    這篇文章主要介紹了C#中的delegate委托類型基本學(xué)習(xí)教程,委托是C#語言所具有的一個(gè)重要特性,需要的朋友可以參考下
    2016-01-01
  • winform實(shí)現(xiàn)拖動(dòng)文件到窗體上的方法

    winform實(shí)現(xiàn)拖動(dòng)文件到窗體上的方法

    這篇文章主要介紹了winform實(shí)現(xiàn)拖動(dòng)文件到窗體上的方法,以實(shí)例分析了C#中WinForm操作窗體及文件的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • C# 使用Tcp/Udp協(xié)議的示例代碼

    C# 使用Tcp/Udp協(xié)議的示例代碼

    這篇文章主要介紹了C# 使用Tcp/Udp協(xié)議的示例,文中代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08

最新評(píng)論