^.^ Napisano 26 Luty 2012 Napisano 26 Luty 2012 Witam, tworzę właśnie skrypt (java script) wczytujący tekstur ze wskazanego miejsca na dysku. Do tej pory wraz z kolega udało nam się wysmarować coś takiego: #pragma strict import System.IO; import System.Collections; import System.Collections.Generic; var path = "file:///C:/a"; var Files = new Array(); Files = null; function Start () { Files = System.IO.Directory.GetFiles(path); Debug.Log(path); // spr Debug.Log(Files.length); // spr var Textures = new Array(Files.length); Debug.Log("texture lenght:" + Textures.length); for (var i=0; i { Debug.Log("i: " + i); // spr var www : WWW = new WWW(Files[i]); Debug.Log(www.url); // spr yield www; Textures.Push(www.texture); //Textures.Add(www.texture); } } function Update () { } Problem w tym, że po podpięciu skryptu do obiektu w scenie kompilator niby wczytuje pliki, jednak wydupca taki oto błąd: You are trying to load data from a www stream which had the following error when downloading. Could not resolve host: C:; Host not found UnityEngine.WWW:get_texture() $:MoveNext() (at Assets/loadTexture.js:28) Jak by nie kombinować nie wiadomo dlaczego. Na forach wyczytałem że w takim przypadku przed ścieżką należy dodać nieszczęsne "file://". Ale skrypt wywala ten sam błąd z tym dodatkiem, jak i bez niego. Czy ktoś znający się na java script i unity mógł by mi coś podpowiedzieć ? Pozdr.
^.^ Napisano 26 Luty 2012 Autor Napisano 26 Luty 2012 (edytowane) Te debugery mają to do siebie, że opisują błędy -.-. To że skrypt nie może znaleźć hosta / katalogu (czy jak to inaczej tłumaczyć) to ja wiem. Problem w tym, że pod wskazanym adresem istnieje katalog i pliki, przy wywołaniu: Debug.Log(path); scieżka jest wypisywana poprawnie, Debug.Log(Files.length); ilość plików / rozmiar tablicy jest prawidłowy, Debug.Log("i: " + i); kolejne iteracje działają (i jest zwiększane prawidłowo Debug.Log(www.url); adresy kolejnych plików są dobre Gdybyś był taki miły i podpowiedział co zrobić aby można było znaleźć hosta (podany katalog) byłbym wdzięczny. Scieżke podałęm raczej prawidłową (chdź próbowalem na różne sposoby, 1x \, 2x \\ itp) Poniższy skrypt działa bez problemu function Start () { var download : WWW; var url = "http://download.unity3d.com/webplayer/images/unity-icon-big.jpg"; var file : WWW = new WWW(url); download = file; yield download; GameObject.Find("UnityTest").guiTexture.texture = download.texture; } function Update () { } Więc coś jest nie tak z "wykrywaniem" zawartości dysku, tylko ni chu chu nie wiem co :(. Edytowane 26 Luty 2012 przez ^.^
Wichur Napisano 26 Luty 2012 Napisano 26 Luty 2012 A nie możesz po prostu użyć Resources.Load(), LoadAll(), LoadAtPath() ? :)
^.^ Napisano 26 Luty 2012 Autor Napisano 26 Luty 2012 Sprawdzę. Chodzi o to że domyślnie projekt ma być na stronie WWW w formie obracającego się sześcianu, który ma prezentować na ścianach losowe prace (rendery, zdjęcia itp. - takie 3D portfolio) z danego katalogu. Więc w ramach testów próbuje to poskładać tak, aby wczytywało pliki ze wskazanego folderu :). A że jestem początkujący w Unity to mam problemy xD. Tak to jest jak człowiek ciągle łączy tylko klocki w Quest3d :/.
^.^ Napisano 27 Luty 2012 Autor Napisano 27 Luty 2012 Dobra, problem rozwiązany... wczytałem grafikę na stałe do projektu.
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się