Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

¿Cómo acceder a componentes con arrays?

Iniciado por yhuj, Julio 01, 2017, 02:14:37 PM

Tema anterior - Siguiente tema


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.


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!

Julio 01, 2017, 06:12:09 PM #2 Ultima modificación: Julio 01, 2017, 06:12:39 PM por pioj
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...

Etiquetas: