Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

163
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!