unity tag posicion obtener objeto c# unity3d resources assets hololens

c# - tag - obtener la posicion de un objeto unity



Uso de la carpeta de recursos en Unity (1)

Estoy desarrollando un proyecto HoloLens que necesita hacer referencia a 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, al compilar el programa 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 construir en Unity), ni siquiera veo una carpeta de recursos o activos. Me pregunto si estoy haciendo algo mal o si había una forma especial de manejar esos recursos.

También con archivos de imagen y sonido ...

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

La cadena ''str'' es válida; Funciona absolutamente bien con Unity. Sin embargo, de nuevo, no se carga nada cuando se ejecuta a través de HoloLens.


No puede leer el directorio de Recursos con 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 de ruta.

3. Utilice barras diagonales en lugar de barras diagonales 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 de conjunto de texto admitidos:

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 - Single :

Imagen con el tipo de textura establecido en Sprite (2D y UI) y

Imagen con Modo Sprite configurado en Individual .

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

Sprites - Múltiples :

Imagen con el tipo de textura establecido en Sprite (2D y UI) y

Imagen con Modo Sprite establecido en Múltiple .

Sprite[] sprite = Resources.LoadAll<Sprite>("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;

Malla 3D (como archivos FBX)

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

Malla 3D (de 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<MeshFilter>(); //Mesh loadedMesh = meshFilter.sharedMesh; GameObject object1 = Instantiate(loadedObj) as GameObject;

Acceso a archivos en una subcarpeta :

Por ejemplo, si tiene un archivo shoot.mp3 que se encuentra en una subcarpeta llamada " Sonido " que se coloca en la carpeta Recursos , utilice 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());