unity PC端 本地路徑加載FBX模型、圖片、文檔爬坑經驗


需求是本地可替換模型,圖片,文檔,最后發布EXE程序。

在網上找了好多資料都零零散散的,自己拼來拼去各種坑累成狗,現在把經驗記錄下來,希望大家少采坑。

1.本地路徑加載

  路徑加載使用:Application.persistentDataPath 這個是一個本地可讀寫路徑,默認位置在:

C:/Users/Administrator/AppData/LocalLow/DefaultCompany/項目名稱

2.本地加載文檔:

  使用時這樣寫,用WWW調用,現在WWW過時了,改為UnityWebRequest,但是www不影響使用;

WWW www1 = new WWW("file:///" + Application.persistentDataPath + "/name01.txt");
name.text = www1.text;

這里有個坑,不加"file:///" 的話在編輯器里可以正常調用,發布為EXE的時候就不能了,而且還必須是三道杠,兩道還不行。

在類型轉換的時候還有個坑,文本內容是8889,賦值的時候提示需要將string類型轉換為int,代碼為:

udpserver.udp端口 = Convert.ToInt32(www.text);

按道理沒問題,結果運行的時候unity老報錯,提示string類型輸入不規范,折騰了好幾個小時,后來就打印了一下www.text的長度,顯示為5,

明明只有4位,就是顯示5位,想了想,不知道在哪里搜索的時候有網友建議TXT文檔編碼要為UTF-8,就這里改動過,就把UTF-8改回ANSI,

再打印www.text的長度,顯示為4,這下正常了,代碼也沒報錯。

3.本地加載模型FBX

加載模型也是搜索了不少資料,各種對比下來,還是使用TriLib插件比較靠譜,插件官網地址 https://ricardoreis.net/ 使用方法也很簡單,

將插件拷貝進unity工程,在unity工程里新建C#腳本,將下列代碼復制進Start(),注意faircraft09.fbx這個是路徑文件夾里的模型文件,可根據自身模型重新命名!

var assetLoader = new AssetLoader();
var assetLoaderOptions = AssetLoaderOptions.CreateInstance();
var wrapperGameObject = gameObject;
var myGameObject = assetLoader.LoadFromFile(Application.persistentDataPath + "/faircraft09.fbx", assetLoaderOptions,wrapperGameObject);

把腳本拖進空物體的組建面板,運行的時候在空物體的子級就會出現加載的模型,可謂簡單高效!

3.本地加載圖片

按照需求需要替換精靈圖片,使用路徑加載,先開協程:

    IEnumerator GetTexture01(string url)
    {
        WWW www1 = new WWW(url);
        yield return www1;
        if (www1.isDone && www1.error == null)
        {
            img01 = www1.texture;
            sprite01 = Sprite.Create(img01, new Rect(0, 0, img01.width, img01.height), new Vector2(0.5f, 0.5f));
            scene01.AddComponent<SpriteRenderer>().sprite = sprite11;
        }
    }

再在Start()里開始協程:

StartCoroutine(GetTexture01("file:///"+Application.persistentDataPath + "/Icon01.png"));

這里也有個坑,因為要改變精靈的組件內容,所以使用 AddComponent<SpriteRenderer> 但是原有的SpriteRenderer組件本身還在,就會顯示不了圖片,

正確做法是把原有的SpriteRenderer組件刪除,變成空物體,代碼里會增加SpriteRenderer組件,這樣就不會沖突,顯示也正常了。

以上就是本地路徑加載發布PC端EXE文件遇到的一些坑。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM