2016-04-10 20 views
0

Bir dizinden bazı harici görüntüleri yüklemek zorunda olan bir webGL projesini geliştiriyorum, bu yüzden editörde her şey yolunda gidiyor, ancak oluşturduğumda Web'de Dizin Bulunamadı özel durumu atar konsol. Görüntüleri Assets/StreamingAssets klasörüne yerleştiriyorum. Bu, yerleşik projede StreamingAssets klasörü olacak (root, index.html ile aynı). Görüntüler var, ancak tarayıcı hala bu dizini bulamamaktan şikayet ediyor. (Kendi bilgisayarımda açıyorum, web sunucusu açılmıyor)Unity WebGL Dış Varlıklar

Sanırım çok açık bir şey kaçırıyorum, ama biraz yardımı kullanabiliyor gibiyim, bir hafta önce birlik öğrenmeye başladım. ve ben C# veya JavaScript ile bu kadar iyi değilim (daha iyi olmaya çalışıyorum ...) Bu bir şekilde javascript güvenlik sorunlarıyla ilgili mi?

Birisi bana Unity WebGL'de doğru yönde nasıl işaret ettiğimi, görüntüleri nasıl okumam gerektiğini (yazmak gerekmiyor) olabilir mi? WebGL'deki unity3d.com göre

string appPath = Application.dataPath; 
string[] filePaths = Directory.GetFiles(appPath, "*.jpg"); 

desteklenir dizisi oluşturma ve yansıma dışında her şeyi oluşturur ve bu nedenle IO çalışıyor olması gerekir - ya da ben düşündüm: Ben biraz etrafında çalışıyordu S

ve şimdi ben Sonra

TextAsset ta = Resources.Load<TextAsset>("texManifest"); 
    string[] lines = ta.text.Split(';'); 

düzgün yoluna tüm satırları dönüştürmek ve bunları bir listeye ekleyin::

; ('' ile ayrılmış) görüntülerin yollarını içeren bir metin dosyası yüklemeye çalışırken Debug.log söylüyor

o şuna benzer:

dosyası:

Yani dışında allright gibi görünüyor //////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); 

Ve bu son bölümü etrafında

(emin: webgl projeler kolaylıkla debuggable görünmüyor) o söyler tüm bu eğik çizgiler için

Ve nihayet doku oluşturmak (Bu bana biraz tuhaf görünüyor) me: NS_ERROR_DOM_BAD_URI: Kısıtlanmış URI'ye erişim reddedildi

Birisi bana neler olduğunu aydınlattırabilir mi? Ve en önemlisi, çalışma zamanı boyunca görüntüleri yükleyebileceğim bir dizin oluşturmak için çözüm için uygun olan nedir?

cevap

0

Görüntünüzü Resources klasörüne koyun ve dosyayı açmak ve kullanmak için Resources.Load kullanın. Örneğin

:

Texture2D texture = Resources.Load("images/Texture") as Texture2D; 
if (texture != null) 
{ 
    GetComponent<Renderer>().material.mainTexture = texture; 
} 

dizin listesi ve dosya API'leri webgl oluşturur kullanılamaz.

Temel olarak düşük düzey IO işlemleri desteklenmez.

+0

Projenin yeniden oluşturulmadan klasörün içeriğini değiştirebilmem gerekir. Şimdi bir metin dosyası oluşturmaya çalışıyorum, bu tüm görüntülerin bir manifestosu gibi davranıyor. Bu metin dosyasını (kaynak - textasset olarak) yüklerim ve görüntüleri metin dosyasından alınan yollardan yüklerim. Ancak bana NS_ERROR_DOM_BAD_URI veriyor: Kısıtlı URI'ye izin reddedildi. Soruya biraz daha kod ekleyeceğim, belki bu biraz yardımcı olacaktır. –

+0

Yardımınız için teşekkürler Doug, baş ağrımın nedeni: // öneki… –