Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: yhuj en Julio 01, 2017, 02:14:37 PM

Título: ¿Cómo acceder a componentes con arrays?
Publicado por: yhuj en Julio 01, 2017, 02:14:37 PM


Hola gente, para hacer esto que pregunto he pensado que podría hacerlo así:


using UnityEngine;
using System.Collections;
public class audio : MonoBehaviour {
private GameObject[] _go;
private AudioSource _as;
void Start () {
   _go = GameObject.FindGameObjectsWithTag ("Audio");
   for (int i = 0; i < _go.Length; i++)
   {
      _as = _go.GetComponent<AudioSource> ();
   }
}
}


 

 


Pero la consola me marcar este error:
 


(14,25): error CS0021: Cannot apply indexing with [] to an expression of type `UnityEngine.AudioSource'
 


He intentado hacer diferentes cosas pero como soy todavía novato en la programación, no sé solucionarlo. Gracias de antemano por la ayuda.

Título: ¿Cómo acceder a componentes con arrays?
Publicado por: juanma_teso en Julio 01, 2017, 02:26:49 PM
Es diferente:
 

AudioSource _as;   //Variable del tipo audio source.
AudioSource[] _as;   //Array de audio source.

 
y recuerda iniciarlo antes de intentar acceder a el.
 

_as = new AudioSource[_go.length];

 
Suerte!
Título: ¿Cómo acceder a componentes con arrays?
Publicado por: pioj en Julio 01, 2017, 06:12:09 PM
Consejo importante: Así cómo hay que inicializar correctamente el array al principio, con un tamaño finito, os aconsejo que en cuanto ya no los necesitéis para nada, los reescaléis a tamaño 0 ó 1, y con valores de 0, a todos.
 
Así os ahorráis memoría y CPU, por el GarbageCollector...