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

218
Vistas
¿Por qué Vector3 no actualiza Unity3d?

He estado perdiendo mi cordura en esto por un tiempo ahora. Simplemente ignore la parte que está comentada (no es el problema). Estoy tratando de hacer un barrido de longitud de 360 grados y de longitud de 180 grados y luego raycast. Pero aparentemente el vector de dirección (Dir en este caso) está atascado en (0, 0, -1). Revisé los valores xy y z y están funcionando bien. No tengo idea ahora de lo que está mal. Por favor responde antes de que me mate. suspiro

 { Vector3 Dir = new Vector3(0.0f, 0.0f, 0.0f); Output = new Texture2D(2160, 1080); for (int i = 0; i < 1080; i++) { float theta = (Mathf.Deg2Rad * i * 1.0f) / 6.0f; for (int j = 0; j < 2160; j++) { float phi = (Mathf.Deg2Rad * j) / 6.0f; float x = Mathf.Sin(theta) * Mathf.Cos(phi); float y = Mathf.Sin(theta) * Mathf.Sin(phi); float z = Mathf.Cos(theta); Dir = new Vector3(x, y, z); Debug.Log(x + " " + y + " " + z); /* RaycastHit raycastHit; if (Physics.Raycast(transform.position, Dir, out raycastHit)) { Renderer rend = raycastHit.transform.GetComponent<MeshRenderer>(); Texture2D tex = rend.material.mainTexture as Texture2D; Vector2 pCoord = raycastHit.textureCoord; pCoord.x *= tex.width; pCoord.y *= tex.height; Color color = tex.GetPixel((int)(pCoord.x * rend.material.mainTextureScale.x), (int)(pCoord.y * rend.material.mainTextureScale.y)); Output.SetPixel(j, i, color); Debug.Log("Ray hit an object! @ theta " + i.ToString() + " phi " + j.ToString() + " Color: " + color.ToString() + "Hit Coordinate x: " + pCoord.x + " y: " + pCoord.y); } */ } } //System.IO.File.WriteAllBytes("D:\\FYProject\\WebcamSnaps\\" + naming + ".png", Output.EncodeToPNG()); }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

En uno de sus comentarios, dijo: "No obtengo nada más que (0,0,-1) en cualquier iteración".

Su código tiene un bucle externo con un factor de iteración de 1080. Su bucle interno tiene un factor de iteración de 2160. En total, sus bucles combinados producen 2 332 800 valores de salida. No creo que haya verificado la salida de más de dos millones de declaraciones de depuración. Creo que comprobó las últimas docenas de valores, vio el mismo resultado una y otra vez y supuso que el patrón continuaba en toda la cadena. Ese fue tu primer error.

Su segundo error fue perder varias horas asumiendo que una función de formato era un error.

Vector3.ToString() redondea su salida a un dígito después del decimal. Si imprime los componentes individualmente, mostrarán lo que esperaría.

Tienes mis simpatías.

over 4 years ago · Santiago Trujillo Denunciar
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