Usar carpeta de recursos en Unity

Estoy desarrollando un proyecto HoloLens que necesita referenciar archivos .txt. Tengo los archivos almacenados en la carpeta ‘Recursos’ de Unity y los tengo funcionando perfectamente bien (cuando se ejecutan a través de Unity):

string basePath = Application.dataPath; string metadataPath = String.Format(@"\Resources\...\metadata.txt", list); // If metadata exists, set title and introduction strings. if (File.Exists(basePath + metadataPath)) { using (StreamReader sr = new StreamReader(new FileStream(basePath + metadataPath, FileMode.Open))) { ... } } 

Sin embargo, cuando construyo el progtwig para la implementación de HoloLens, puedo ejecutar el código pero no funciona. Ninguno de los recursos aparece y cuando examino la solución HoloLens Visual Studio (creada al seleccionar build en Unity), ni siquiera veo una carpeta de recursos o activos. Me pregunto si estoy haciendo algo mal o si había una manera especial de manejar esos recursos.

También con archivos de imagen y sonido …

 foreach (string str in im) { spriteList.Add(Resources.Load(str)); } 

La cadena ‘str’ es válida; funciona absolutamente bien con Unity. Sin embargo, nuevamente, no está cargando nada cuando se ejecuta a través de HoloLens.

No puede leer el directorio de Recursos con el StreamReader o la clase File . Debe usar Resources.Load .

1. La ruta es relativa a cualquier carpeta de Recursos dentro de la carpeta de Activos de su proyecto.

2. No incluya los nombres de extensión de archivo como .txt , .png , .mp3 en el parámetro path.

3. Use barras diagonales delanteras en lugar de barras diagonales inversas cuando tenga otra carpeta dentro de la carpeta Recursos . las barras invertidas no funcionarán.

Archivos de texto :

 TextAsset txtAsset = (TextAsset)Resources.Load("textfile", typeof(TextAsset)); string tileFile = txtAsset.text; 

Formatos soportados de TextAsset :

txt .html .htm .xml .bytes .json .csv .yaml .fnt

Archivos de sonido :

 AudioClip audio = Resources.Load("soundFile", typeof(AudioClip)) as AudioClip; 

Archivos de imagen :

 Texture2D texture = Resources.Load("textureFile", typeof(Texture2D)) as Texture2D; 

Sprites – Individual :

Imagen con Tipo de textura establecida en Sprite (2D y UI) y

Imagen con el modo Sprite configurado en Individual .

 Sprite sprite = Resources.Load("spriteFile", typeof(Sprite)) as Sprite; 

Sprites – Múltiples :

Imagen con Tipo de textura establecida en Sprite (2D y UI) y

Imagen con el modo Sprite configurado en Múltiple .

 Sprite[] sprite = Resources.LoadAll("spriteFile") as Sprite[]; 

Archivos de video (Unidad> = 5.6) :

 VideoClip video = Resources.Load("videoFile", typeof(VideoClip)) as VideoClip; 

GameObject Prefab :

 GameObject prefab = Resources.Load("shipPrefab", typeof(GameObject)) as GameObject; 

3D Mesh (como archivos FBX)

 Mesh model = Resources.Load("yourModelFileName", typeof(Mesh)) as Mesh; 

3D Mesh (desde GameObject Prefab)

 MeshFilter modelFromGameObject = Resources.Load("yourGameObject", typeof(MeshFilter)) as MeshFilter; Mesh loadedMesh = modelFromGameObject.sharedMesh; //Or design.mesh 

Modelo 3D (como GameObject)

 GameObject loadedObj = Resources.Load("yourGameObject") as GameObject; //MeshFilter meshFilter = loadedObj.GetComponent(); //Mesh loadedMesh = meshFilter.sharedMesh; GameObject object1 = Instantiate(loadedObj) as GameObject; 

Accediendo a los archivos en una subcarpeta :

Por ejemplo, si tiene un archivo shoot.mp3 que está en una subcarpeta llamada ” Sonido ” que se coloca en la carpeta Recursos , use la barra diagonal:

 AudioClip audio = Resources.Load("Sound/shoot", typeof(AudioClip)) as AudioClip; 

Carga asincrónica :

 IEnumerator loadFromResourcesFolder() { //Request data to be loaded ResourceRequest loadAsync = Resources.LoadAsync("shipPrefab", typeof(GameObject)); //Wait till we are done loading while (!loadAsync.isDone) { Debug.Log("Load Progress: " + loadAsync.progress); yield return null; } //Get the loaded data GameObject prefab = loadAsync.asset as GameObject; } 

Para usar : StartCoroutine(loadFromResourcesFolder());