Jump to content
UnitySpain

Aceptamos donaciones vía Paypal.

UnitySpain.com es un servicio gratuito, pero mantener la Comunidad conlleva una serie de gastos.

Fondo Anual Unityspain: Donados 0€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales

ftejada

Registrados
  • Content count

    393
  • Joined

  • Last visited

  • Days Won

    3

ftejada last won the day on August 7 2016

ftejada had the most liked content!

Community Reputation

37 Excellent

2 Followers

About ftejada

  • Rank
    Avanzado
  • Birthday 03/17/1980

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

1,117 profile views
  1. Hola de nuevo a todos!! En estos tutoriales Tutoriales se explica como utilizar estos componentes de Unity para el NavMesh. Son hechos por Unity pero hay que descargarlos de Gihub. Pone que son para Unity 5.6 en adelante creo. Los he probado en Unity 2018.2.0 y van bien. Pero cuando meto estos componentes para la version de Unity 2018.1.3f1 que es donde tengo el proyecto para el que los necesito, me da este error al importarlo: Assets/NavMeshComponents/Scripts/NavMeshSurface.cs(376,52): error CS0117: `UnityEditor.PrefabUtility' does not contain a definition for `GetCorrespondingObjectFromSource' No puedo actualizar el proyecto a Unity 2018.2.0 pq es un proyecto debe salir bajo Unity 2018.1.3f1, por temas de licencia. He preguntado en el foro oficial de Unity pero nadie me ha dado una solución y quería saber si alguien sabe como solucionar este problema. Un saludo y gracias por adelantado.
  2. Siii!!! Justo era eso!! Muchas gracias @lightbug
  3. Hola a todos!! Se puede congelar (Freeze) dos de los componentes de FreezeRotation de un rigidbody mediante script??? Por lo que veo en la api solo puedo o congelar toda la rotación: rigBdy.constraints = RigidbodyConstraints.FreezeRotation; o Congelar solo uno de los componentes: //Este codigo solo congelaria el ultimo freeze que se hiciese, en este caso el de la rotacion en Z rigBdy.constraints = RigidbodyConstraints.FreezeRotationX; rigBdy.constraints = RigidbodyConstraints.FreezeRotationZ; ¿Existe alguna manera de congelar la rotacion de X y Z de un rigidbody mediante script? Saludos
  4. No. Esto lo estuve tanteando pero no sirve para lo que necesito. Esto lo reescalaria a nivel general y hay veces que necesito reescalar solo el tamaño de alguno de los ejes... Por no mencionar el hecho de que no sabría cuanto reescalarlo respecto a otra malla cuando vienen con distintos tamaños reales de otros programas 3d.. Por ejemp, si tengo un cubo con todos sus lados iguales y debo adaptarlo a otro cubo que tiene dos lados iguales (x, y) pero uno más grande (z) formando un rectangulo más que un cubo, no podría hacerlo. Aparte usar Scale Factor creo que me plantearia otros problemas... Gracias por el aporte @francoe1
  5. Ok... Pensaba que al cambiar el tamaño de los bounds cambiaba el tamaño de la malla. @J Montes Gracias por la apreciación... con Vector3.scale el codigo está mas limpio... @J Montes Me refería a cuando una esfera no es totalmente redonda... por ejemplo y alguno de sus ejes de (localScale) es de tamaño distinto Es posible que esto me pueda servir, aunque en principio solo para figuras donde el tamaño deba aumentar o disminuir por igual en todos sus lados... gracias @Igor Saludos
  6. @Igor He probado a hacer lo que dices pero la malla no cambia de tamaño, al menos visiblemente en la pantalla: Vector3 size = meshTarget.bounds.size; Vector3 nSize; nSize.x = Target.transform.lossyScale.x * size.x; nSize.y = Target.transform.lossyScale.y * size.y; nSize.z = Target.transform.lossyScale.z * size.z; mesh.bounds = new Bounds(mesh.bounds.center, nSize / 2); Supongo que no estaré utilizandolo bien... Saludos
  7. Hola a todos y muchas gracias por los aportes!!! respecto a lo que dijo Igor, concuerdo con francoe1, la magnitud de la posición de cada vertice, solo serviría para esferas "totalmente redondas". En cuanto la esfera tuviese una escala distinta en alguno de sus ejes o en otras figuras irregulares... no parece ser una solución J Montes he estado probando lo que dijiste y va perfecto para los cubos... no tenia ni idea de que multiplicandolo por su lossyScale podría conseguirlo, por eso cuando estuve probando no me servia esta solución ya que no lo estaba haciendo bien. Siguiendo tu información he hecho algo así. targetMeshBounds = gameObjectTarget.GetComponent<MeshFilter>().mesh; //.... Vector3 sizeBoundsTarget = targetMeshBound.bounds.size; Vector3 nSize; nSize.x = Target.transform.lossyScale.x * size.x; nSize.y = Target.transform.lossyScale.y * size.y; nSize.z = Target.transform.lossyScale.z * size.z; transform.localScale = nSize; También lo he estado probando con esferas y parece ir perfecto también aunque la esferaTarget tenga escalas diferentes en cada eje X, Y, Z... Es cierto que he notado que la escala no es totalmente exacta, pero es más que suficiente para lo que necesito, ya que la perdida de precisión es como de 0.000001 o algo asi... supongo que es a esto a lo que te referias con si no dimelo pq con las prubas que he hecho parece bastante preciso y no representaría un problema para mi: Otro cantar parece ser con figuras como los cilindros, en los que la altura de este siempre se incrementa al doble ya que al final le estamos pasando el tamaño del bound.y a la escala del otro objeto... por lo que si es un cilindro conviene dividir el bound.y/2 ¿Existe alguna manera de poder modificar el mesh.bounds.size de una malla para que cambie su tamaño en vez de andar tocando la escala de su transform? Saludos
  8. Si. Creo que llevas toda la razón y tomaré el camino de implementar Lod´s en principio. Saludos y gracias
  9. Gracias por la respuesta @Igor !! Lo de hacer el script es lo primero que he pensado, pero no pensé en hacerlo mediante corrutinas para que no asesine al rendimiento en escenas muy pesadas... Por otro lado lo del LODs es buena idea, y quizás sea la que finalmente termine haciendo para que todo lo gestione Unity internamente con LODs Saludos y muchas gracias por el aporte
  10. Gracias a todos por las ideas! Voy a probar que tal va... de todos modos me surgen algunas dudas acerca del consumo que requeriria calcular la distancia entre muchisimos vertices ( por ejemplo los de una esfera que tiene unos cuantos)... Tengo entendido que calcular la distancia es bastante costoso en terminos de rendimiento debido a la raiz cuadrada. Por Bound he estado haciendo unas pequeñas pruebas y parece que en cuanto rotas un objeto los valores cambian ya que la caja delimitadora nunca gira con los ejes y la Api de Unity no provee de unas variables con la posicion exacta de cada Bound para poder calcular todo manualmente ayudandonos con el centro... Parece que la mejor via de conseguirlo es mediante lo que dijo francoe1... voy a seguir tanteando... Saludos
  11. Hola a todos!!! ¿¿¿Existe en Unity la manera de poder tener la opción de Shadows distance de las opciones de Quality, por ejemplo a 200m y que algunos objetos (que yo quiera) solo dibujen la sombra hasta los 50m por ejemplo??? por ejemplo el terrain me gustaria que la sombra la dibujase a muy larga distancia pero objetos pequeños como piedras de mediano tamaño o árboles no tanto No se si esto es posible con las opciones que trae Unity... pero si no, ¿Existe alguna manera de hacerlo? Saludos y gracias por adelantado.
  12. mmmm Parece buena idea... Voy a tantearla en estos días a ver que saco en claro. Gracias @francoe1 Si a alguien se le ocurre más ideas estoy abierto a más sugerencias Saludos
  13. Hola a todos, Sabemos que la escala de un gameObjet es totalmente independiente de su Tamaño real en nuestras escenas. Por ejemplo un Cubo con la malla por defecto de Unity con la escala (1,1,1) tiene un Tamaño Real en cada uno de sus EjesLocales de 1 (metro). Pero otro cubo que tenga otra malla modelada en otro programa con escala de su gameObject (1,1,1), puede tener cualquier tamaño Real en cada uno de sus EjesLocales... por ejemplo 2 (metros). Lo que nos daria un Cubo el doble de grande que el que tiene la malla por defecto de Unity En la escena tengo un cubo y una esfera (con malla por defecto de Unity) y necesito darles el mismo tamaño "Real" en el mundo que un cubo y una esfera con mallas de otro programa. Pero no encuentro una manera totalmente precisa de hacerlo, ya que la escala de sus gameObjects en ambas parejas, (Cubo y Esfera con malla por defecto de Unity) y (Cubo y Esfera con mallas importadas "con tamaño indeterminado), sería de (1,1,1). ¿Existe alguna manera de poder saber el tamaño Real exacto dentro de nuestra escena de un objeto independientemente de la escala que tenga? mediante script, claro está! Saludos y gracias de antemano.
  14. Ya ya, lo he encontrado.... Ahora se utiliza la funcion LoadScene("nombreEscena", LoadSceneMode.additive); o LoadSceneAsync("nombreEscena", LoadMode.additive); Gracias lightbug Un saludo
  15. Hola a todos! Estoy viendo que en la nueva api de Unity con SceneManagement no hay ninguna funcion que cargue de manera aditiva y async una escena... o al menos yo no la he encontrado... Hay alguna manera de poder hacer esto sin tener que utilizar el deprecated "Application" Saludos
×