我在Unity中開發一些webGL項目,必須從目錄加載一些外部圖像,它在編輯器中運行良好,但是當我構建它時,它會在Web中引發一個Directory Not Found異常安慰。我將這些圖像放在Assets/StreamingAssets文件夾中,這將成爲構建項目中的StreamingAssets文件夾(在根目錄中,與index.html相同)。圖片位於那裏,但瀏覽器仍然抱怨無法找到該目錄。 (我打開它在我自己的電腦上,沒有運行網絡服務器)Unity WebGL外部資產
我想我錯過了一些非常明顯的東西,但似乎我可以使用一些幫助,我剛剛開始學習一個星期前的團結,而我用C#或JavaScript並不是那麼棒(我試圖讓它變得更好......)這是否與某些javascript安全問題有關?
有人請指出我在正確的方向,我應該如何閱讀圖像(不需要寫作需要完成)在Unity WebGL?
string appPath = Application.dataPath;
string[] filePaths = Directory.GetFiles(appPath, "*.jpg");
根據WebGL的unity3d.com建立一切,除了線程和反思是支持的,所以IO應該是工作 - 我這樣想着:S
我張望了一下工作,現在我試圖加載包含圖像的路徑的文本文件(由「;」分隔):
TextAsset ta = Resources.Load<TextAsset>("texManifest");
string[] lines = ta.text.Split(';');
然後我轉換的所有行適當的路徑,並將其添加到列表:
string temp = Application.streamingAssetsPath + "/textures/" + s;
filePaths.Add(temp);
講述的debug.log我它看起來像這樣:
文件://////Downloads/FurnitureDresser/build/StreamingAssets/textures/79.jpg
所以,似乎除了要好吧所有這些斜槓(這看起來有點奇怪我)
最後創建紋理:
WWW www = new WWW("file://" + filePaths[i]);
yield return www;
Texture2D new_texture = new Texture2D(120, 80);
www.LoadImageIntoTexture(new_texture);
並圍繞這個最後一部分(不確定:WebGL的項目似乎並不容易調試的),它告訴我:NS_ERROR_DOM_BAD_URI:訪問被限制的URI被拒絕
有人能告訴我發生了什麼事嗎?最重要的是,在運行時我可以從哪裏創建一個目錄來創建一個目錄以解決問題?
我必須能夠在不重建項目的情況下修改文件夾的內容。現在我試圖創建一個文本文件,它充當所有圖像的清單。我加載該文本文件(作爲資源 - textasset)並加載從文本文件獲取的路徑中的圖像。但是它給了我NS_ERROR_DOM_BAD_URI:訪問被限制的URI被拒絕。我會爲這個問題添加更多的代碼,也許這會有所幫助。 –
感謝Doug的幫助,好像我的頭痛是由file:// prefix造成的...... –