Jump to content

biztor

Fosiles
  • Content Count

    74
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by biztor

  1. Pues usando ese normal map, ha quedado muy bien. El problema es crear el normal map. Lo hacia a mano, pintando de blanco lo que estaria mas cerca y de negro lo mas lejos. De ahi creaba el normal map, Pero queda mejor usando el canal rojo, verde y azul. Pero ni idea de como crear el normal map así con los sprites. Y el tema de reflejos de colores, ya no hay manera. Edito, usando tambien specular, ya funciona. Ahora me queda saber como hacer un normal map en condiciones. Por cierto, gracias.
  2. Usando el un shader legacy, se pasa la textura difusse y un normal map, por ejemplo a partir de un greyscale, pero no queda del todo bien el efecto, yo queria crear efecto de volumen en objetos 2d, y que la luz cree volumenes. Con este shader se puede hacer, pero no tiene un buen acabado. Si cambias la luz del foco, por ejemplo a roja, tendria que verse el sprite, con tonalidades, reflejos rojos, como si un personaje se acerca a una hoguera, pero lo que hace es multiplicar el color, algo blanco queda rojo, pero algo azul oscuro , que practicamente negro. Entonces no se si hay algun shader asi, o tengo que aprender y crear uno.
  3. Buenas, alguien sabe como iluminar en 2d? He probado cambiando el shader de los sprites, pasarle el difusse, y usar un normal map, para crear la ilusión de volumen en el sprite, y va bien, pero el normal esta hecho a partir de una escala de grises, y entre un gris y otro, se nota mucho el salto, y queda la iluminacion a trozos, tambien no le afecta el cambio de color de la fuente de luz. Como hacéis vosotros?
  4. Iba bien antes de que le pusieras eso? Va a tirones el jugador o la cámara? Es normal que vaya peor que en la build pero eso que dices no es normal. Salva todo y reinicia. Pero tiene pinta de ser del script de movimiento.
  5. Bueno parece que ya funciona!!!! , bufff. Algún bug o algo debe pasar usando rotate al Gameobject padre. Calculando donde tienen que estar los bloques, y asignándolos a esa posición, hace que funcione correctamente. El padre solo sirve de contenedor, y se queda en un sitio fijo, cuando la ficha ya no se mueve, lo destruyo, y las fichas pasan a estar en otro grupo, donde guardo todas las fichas colocadas. Todavía queda, a ver si lo acabo mañana o pasado. Muchas gracias a todos, seguramente tendré que preguntar algo mas. Me ha servido de mucho, lo que habéis planteado aquí.
  6. lo que tengo es una matriz de transforms, para luego al hacer linea, solo tengo que mirar las lineas que se tienen que borrar y destruir el transform asignado.
  7. no, voy hacer como antes, ficha activa no se registra en grid hasta que se inmoviliza, así se soluciona las comprobaciones. lo que voy hacer es hacer el movimiento y la rotacion asignando las posiciones directamente a las transforms de las partes de la ficha. Para rotar, creía que tendría que ver que ficha era para programar la rotación, pero como ha puesto el compañero se puede hacer una formula para todas, que ya tengo sacado, se redistribuyen los bloques a sus posiciones esperadas y listo. Espero que funcione. Esto me pasa por llevar tantos meses sin hacer nada. La poca costumbre ...
  8. Muchas gracias, ya llegue a casa, a ello me pongo.
  9. podría hacer todo el movimiento y detectar colisiones en la matriz, rellenando la matriz con los espacios de la ficha, y después de comprobar todo, que se mueva la ficha física en unity. Pero es que joder, no se porque da tantos problemas si es que es lo mismo, la ficha esta en posiciones absolutas, y solo se mueve 1 unidad de cada vez... Lo haré de noche y os digo, pero algo raro pasa cuando se rota. Por webos tiene que funcionar haciendo toda la lógica en matriz, porque es matematica pura.
  10. Bueno, sin usar Corutinas, me sigue haciendo las mismas cosas raras, esto es desesperante.
  11. Están ya agrupadas, como he dicho mas arriba, el problema del raycasting es que es mas lento, por eso lo de la matriz. Bueno he cambiado la forma en la que detecta paredes. Basicamente diciendole que no puede ir mas alla del 0, del 11 (en X) y no menos de 0 en Y. Ahora funciona perfectamente. Testeando parecía que iba bien. Rotan las piezas y se mueve correcto, se detectan las colisiones y demás, Pero hay veces que entre piezas hay huevo libre y la pieza se queda por encima, detecta que tiene algo debajo, y se queda ahí. He probado a redondear las posiciones después de un movimiento, pero nada,sigue igual. voy a probar a rehacer todo, sin usar las corutinas.
  12. Sigo mañana investigando, las colisiones las miro por el array, como puse más arriba, comprueba que tiene alrededor tomando la posición de las piezas, si hay algo, la posición es el índice del array. Lo muevo todo con corutinas, una que cada X tiempo ha bajando la pieza, antes de bajarla comprueba si puede bajar. Otra corutina responde al input y dependiendo hacia que lado,mira si puede moverse hacia allí y luego se mueve. Justo después de rotar no comprueba, pero ya te digo que comprueba antes del siguiente frame.
  13. si, una solución seria mover todas las fichas, pero seria mas largo y tedioso. porque tiene que mirar que ficha es para reordenar los bloques, y dependiendo en que rotación este. Tambien me jode no saber porque pasa esto. El misterio se vuelve mas raro, sigo haciendo pruebas, y rotando y demas, como digo hay problemas con el tema paredes y el suelo, pero no con las fichas, las fichas al posarse, guardo sus transforms en el array, y la siguiente pieza aunque la rote, si que detecta PERFECTAMENTE todas las fichas de alrededor, da igual que las pongas en las posiciones mas raras, funciona perfectamente, osea que no se porque, sin rotacion, no existe un Transform en el array, en la cordenada 1 del eje Y, pero si roto el gameObject, encuentra un Transform en la cordenada 1 del eje Y, aunque no haya pasado nada entre los 2 procesos. Es magia... Por cierto, muchas gracias por tus respuestas. EDITO: despues de rotar, hago un for, por todo el array y saco las posiciones donde hay algo, para testear y esta todo correcto, hay transforms en los bordes, asi que no se porque cojones detecta uno donde no lo hay...
  14. para mover simplemente, piezaActiva.position += new Vector3(0f, -1f, 0f); actualizo la matriz cuando la pieza ya no se puede mover y sale la otra. para rotar, sin mas piezaActiva.transform.Rotate(0f, 0f, 90f); he probado ha rotar en self y a rotar en world, y nada lo mismo. La ficha hace cosas rarisimas siempre que esta rotada. la misma ficha rotada, se puede quedar a 1 o varios espacios de donde tendria que estar, y la misma ficha rotada 360º o sin rotar, va normal. Lo que roto es el GameObject padre. Tan simple joder y no se que mierdas pasa.
  15. por matrices. Por ejemplo el movimiento automático hacia abajo, mira todos los bloques que forman el Gameobject, y compara su posicion, con el indice del array, para ver si hay algo. private bool Colision(int modX,int modY) { for(int n=0;n<piezaActiva.childCount;n++) { if(grid[(int)piezaActiva.GetChild(n).transform.position.x+modX, (int)piezaActiva.GetChild(n).transform.position.y+modY]!=null) { return false; } } return true; } Si no hay nada, sigue bajando. El problema viene, que roto el GameObject padre, que contiene 4 GO hijos, que son los bloques de la ficha. Entonces el objeto se para por encima de donde debería, Por ejemplo para bajar llamo a la función con colision(0,-1), asi mira que debajo de cada bloque no haya nada, pues con 90º de rotacion, y aunque debajo no haya nada, la ficha se para.
  16. Estoy haciendo un tetris, las piezas son un prefab de 4 cubos agrupados en un GameObject. Antes de bajar o moverse, verifico que la posición a la que se quiere mover no hay nada, haciendo un for por cada hijo del GameObject. Todo funciona perfectamente, las cosas raras ocurren al rotar. Cuando se hace la rotación, giro 90 grados el GameObject, es entonces cuando no funcionan bien las detecciones, por ejemplo una pieza sin rotar, que no puede desplazarse a la izquierda,al rotar, desde el punto de origen del GameObject, no tiene ningun bloque a la izquierda, con lo que podría moverse, pues no. Es como si ese bloque, que su transform es -1,0,0. Al buscar su posición sabe que esta a -1x del padre, y en vez de darme la posición real del hijo en el espacio, saca que esta a -1x y por eso detecta que no se puede mover hacia la izquierda, cuando en verdad el bloque si tiene espacio. No se si me he explicado bien, pero no se como arreglar esto.
  17. Pola de siero, Asturias. Muchos hay de asturias, ya podríamos juntarnos para hacer algo...
  18. Vale entonces con el diffuse bastaría. Me imagino que un specular tambien para determiar que partes son mas brillantes no?
  19. Buenas, llevo un tiempo aprendiendo blender para poder hacer mis propios Assets. Estoy viendo que el flujo de trabajo normal, es hacer el modelo, con bastante definicion, y luego hacer la version con menos poligonos, hacer bake usando el modelo potente y usar esas texturas en el de Low-Poly. La cosa es, se que no voy a conseguir una calidad buena en los modelos, aparte de que quita muchísimo tiempo, entonces me salto la parte de hacer el modelo con muchos poligonos. La cosa es, si es necesario las texturas Ambient Oclussion, Normal map, Specular, y demas, siendo un modelo Low-Poly, Entiendo que al importar un Asset a unity, se le aplica un shader, que le da unos valores a estas texturas, se nota si importo el modelo sin por ejemplo un normal map? y me refiero a un Bake directo del modelo Low- Poly. Un saludo.
  20. Estaba probando los proyectos que tengo , exportarlos a WebGL, y claro no funciona nada, ni con Explorer ni con Chrome.
  21. Entonces ahora es mejor no usar Unity para cosas en web por lo que veo, son todo problemas, alternativas?. Yo aunque aumente la memoria no me inicia.
  22. Solucionaste el problema ? por que yo estoy igual.
  23. Por curiosidad, como se puede hacer herramientas para Unity? Por ejemplo desde el editor, o crear una aplicación con una interfaz donde crees por ejemplo personajes, su comportamiento y demas, y luego al salvar, te cree esos contenidos en tu proyecto de Unity. Un ejemplo un saludo.
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...