Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

161
Vistas
Asignando gameobject a la matriz pero arrojando IndexOutOfRangeException

Tengo un sistema que mira una imagen, toma cada píxel y genera un bloque para representar cada píxel. Actualmente estoy en el proceso de optimizar esto mediante la creación de un sistema de combinación de mallas para que todos los miles de objetos cúbicos sean, en cambio, una malla única.

He estado siguiendo este video para hacerlo: https://www.youtube.com/watch?v=NcmPz_nbArY

Esencialmente, el problema que tengo es que cuando se genera un cubo, intento agregarlo a una matriz de objetos de juego en la posición del contador de la matriz (que comienza en 0). Sin embargo, siempre me arroja este error:

 IndexOutOfRangeException: Index was outside the bounds of the array. (wrapper stelemref) System.Object.virt_stelemref_sealed_class(intptr,object)

Simplemente no entiendo cómo. La matriz comienza en la posición 0, le digo que establezca un objeto de juego en la posición del contador de matriz que es 0 inicialmente. Incluso arrojar un Debug.Log (arraycounter) muestra que el valor es 0, pero aún se arroja el error.

El objetivo de la matriz es actuar como un parámetro que se puede incluir en la función CombineGroundMeshes() para que la función sepa para qué objetos necesita combinar mallas.

Inicialmente, habría 2 funciones, una para combinar mallas de suelo y otra para combinar mallas de pared, pero he recurrido a todo lo relacionado con mallas de suelo hasta que se soluciona este problema. ¡Así que no se confunda por qué hay 3 declaraciones if para píxeles de diferentes colores que van a la misma matriz!

Mi código fuente completo se puede encontrar en este pastebin. https://pastebin.com/sYjmzsnz

El problema se puede ubicar en las líneas 105 a 144. Donde ocurre el error es en las líneas 118, 129 y 140.

EDITAR: ¿Alguien pidió una versión mini de mi código? He hecho todo lo posible a continuación para resumirlo.

 public GameObject[] groundObjects; ... foreach(Vector3 pos in spawnpositions) counter = 1 arraycounter = 0 Color colour = pixel[counter]; if(colour.equals(Color.White)) { //instantiate gameobject as a transform //change transforms localscale groundObjects[arraycounter] = spawnedTransform.gameObject; // The above line is causing the error (Unity console log) } counter++; arraycounter++; ... for (int i = 0; i < groundObjects.Length; i++) { CombineGroundMeshes(groundObjects[i]); }
over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda