Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Duda Efectos

Iniciado por ytinU, Febrero 25, 2017, 05:25:14 PM

Tema anterior - Siguiente tema
Que tal, tengo una duda sobre como se hacen los efectos(en general(este es un ejemplo)), una pantalla de carga que cargue de abajo arriba 
 
lo puedo hacer con un Mask y que este suba lentamente, no sé si esta es la manera de hacerlo...
 
Pero por ejem. hay otros más complejos como este que va desde izq a derecho luego sube y se desliza hacia las puntas de la fecha así..
 

 

 
Y pues no supe como hacerlo, es con alguna libreria de UI?

Hola, la verdad que lo primero que se me ocurre es usar un line renderer, no se como los hacen los pro a esto, seguramente con alguna animacion o shaders, pero si usas un line renderer, seteas los puntos del camino y tocando la gama de colores (por codigo o animacion) entre principio y fin quizas podes lograr un efecto similar.
 

 
Claro que poner la punta de la flecha ya ni idea.
 
saludos

Cita de: lightbug date=1488040675Hola, la verdad que lo primero que se me ocurre es usar un line renderer, no se como los hacen los pro a esto, seguramente con alguna animacion o shaders, pero si usas un line renderer, seteas los puntos del camino y tocando la gama de colores (por codigo o animacion) entre principio y fin quizas podes lograr un efecto similar.
   


Ohh..pues haré una prueba y luego comentaré acerca de mi fracaso xD.

Probablemente lo hagan con sprites con frames pero no estoy seguro la verdad ^^

Visita http://www.programacionwh.com encontraras tutoriales y muchas cosas .


Tambien puedes visitar mi canal de YouTube https://www.youtube.com/channel/UClSCTn0wPN1iFjED0yaoJUA



Cita de: ProgramacionWH date=1488055032Probablemente lo hagan con sprites con frames pero no estoy seguro la verdad ^^
   


La idea de Ligthbug no es tan alocada el LineRenderer le pongo una forma y que avance para que dibuje las flechas sin una plantilla, en todo caso mola el linerenderer creo que será mi componente favorito :D

Cita de: ytinU date=1488055952La idea de Ligthbug no es tan alocada el LineRenderer le pongo una forma y que avance para que dibuje las flechas sin una plantilla, en todo caso mola el linerenderer creo que será mi componente favorito :D
   


Estas de suerte porque la caracteristica de los colores me parece que es de 5.5, no estoy seguro. La sacaron especialmente para vos xD
 
 
 
Cita de: ProgramacionWH date=1488055032Probablemente lo hagan con sprites con frames pero no estoy seguro la verdad ^^
   


Si pense lo mismo, es lo mas logico y barato, pero esas barritas de carga se ven tan suavizadas que me puso en duda. Salvo que utilicen muchos frames.

Tu pregunta es algo genérica, pero creo que te refieres a las transiciones entre pantallas:
 

  •    Las Transiciones de Pantallas (Menús,GUI, etc), suelen hacerse en 2D , usando las herramientas de UI de Unity (Canvas, y todo lo demás), y basta con mover por Script o animación una imagen o un panel, etc...


  •    Puedes hacerlo por script, y apoyado o no de una librería para ese tipo de secuencias. Yo te recomiendo DOTween porque facilita mucho esa misma labor.


  •    Puedes usar también Sprites y GameObjects,3D, etc de Unity. No estás limitado a nada. Se trata más de una cuestión de cómo quieres organizar la escena, para que esos efectos estén siempre "por encima" de todo lo demás.


Cita de: pioj date=1488067578Tu pregunta es algo genérica, pero creo que te refieres a las transiciones entre pantallas:
   
   


  •          Las Transiciones de Pantallas (Menús,GUI, etc), suelen hacerse en 2D , usando las herramientas de UI de Unity (Canvas, y todo lo demás), y basta con mover por Script o animación una imagen o un panel, etc...
          

  •       

  •          Puedes hacerlo por script, y apoyado o no de una librería para ese tipo de secuencias. Yo te recomiendo DOTween porque facilita mucho esa misma labor.
          

  •       

  •          Puedes usar también Sprites y GameObjects,3D, etc de Unity. No estás limitado a nada. Se trata más de una cuestión de cómo quieres organizar la escena, para que esos efectos estén siempre "por encima" de todo lo demás.
          

  •    


Aún no estoy a un nivel de descargar una herramienta a unity porque no sé como(lo hice una vez en java pero mori en en intento :C) pero trataré integrarlo, lo dije algo genérico por no solo queria aprenderlo en UIs sino que también cuando alguien juegue por ejem..un tubo transparente donde bajara un liquido es como una barrita de carga o eso supongo(claro en 3D(yo me entiendo xD)) pero gracias por la herramienta vere más afondo que hace.
 
 
 
Alguien me dice como pongo la posición del mouse a posición del mundo intente..
 

Camera.main.ScreenToWorldPoint(Input.mousePosition)

 
tengo entendido que cálcula los pixeles de la pantalla y los convierte a space world pero si lo imprimo me sale la posición de la cámara..¿Cómo lo sé?, pues movi la camara Jajaja no sé a que se debe, quizás cambiaron ese método?.. hace tiempo lo use y funciono.

Cita de: ytinU date=1488069878tengo entendido que cálcula los pixeles de la pantalla y los convierte a space world pero si lo imprimo me sale la posición de la cámara..¿Cómo lo sé?, pues movi la camara Jajaja no sé a que se debe, quizás cambiaron ese método?.. hace tiempo lo use y funciono.
   


cuando decis que lo imprimis a que te referis? la mejor forma de verlo es con un Debug.DrawRay , te salis del Game View y te fijas el ray dibujado en la SceneView mientras moves el mouse. Creo que la funcion esta bien, siempre siempre me las confundia tienen nombres muy parecidos todas.

Cita de: lightbug date=1488071763cuando decis que lo imprimis a que te referis? la mejor forma de verlo es con un Debug.DrawRay , te salis del Game View y te fijas el ray dibujado en la SceneView mientras moves el mouse. Creo que la funcion esta bien, siempre siempre me las confundia tienen nombres muy parecidos todas.
   


No es un rayo, imprimo la posición del mouse en la consola con print(), lo que quiero hacer el dibujar un linerenderer que siga mi mouse que ya lo tengo pero al momento de poner la lista<vector3> que recoje la posición de donde paso mi mouse para mandarselos al linerenderer me da el mismo valor y pues no se ve el linerenderer.
 
Apesar de que muevo el mouse lo guardo en una lista y los envio me da el mismo Vector3,recalco a pesar de mover el mouse.

Febrero 26, 2017, 02:34:25 AM #10 Ultima modificación: Febrero 26, 2017, 03:13:16 AM por lightbug
Ahhh Ok, y si usas OnGUI()? ya que parece mas orientado a una UI mas que a algo espacial, va no se me ocurre solo con el mouse que puedas dibujar esas lineas en tres dimensiones (se puede hacer)
 
https://docs.unity3d.com/ScriptReference/GUIUtility.ScreenToGUIPoint.html
 
en vez de mouse input usas la mousePosition del evento actual, lo podes combinar con un update que cada x segundos tome la posicion o el vector2 y se lo pase a las posiciones del lineRenderer, o quizas dentro de OnGUI tambien.
 
EDIT:
 
ahora que veo bien y no se si te pase bien el dato jajaj, lo que tenes que hacer (depende un poco de la escena y la camara ) es obtener una posicion en el mundo, yo solia hacerlo sobre todo con Unit***itor nunca lo use en Runtime. Lo que hacia era disparar un ray desde la camara como pusiste mas arriba pero (con la clase HandleUtility), luego hacia un raycast con un plano invisible, eso me daba un punto en el espacio. Ese seria tu puntos del line renderer.
 
Reitero creo que te pase cualquier cosa, ya esoty casi dormido jaja.

Ongui por lo que veo siempre se ejecuta y si dibujo en UI(el line renderer) no lo tomara como un objeto de UI sino como un GO(sé que es lo principal de post, hacer el efecto de carga) pero al pasarle valores a la lista vector2 tengo que pasarle los valores al linerenderer pero solo acepta vector3 se me ocurrio poner 'list<vector2>'.x o .y y dps poner un valor al azar que cumpla como Z pero no me deja(screentoguipoint devuleve vector2).

Hola @ytinU
 
Creo que las respuestas que te han dado son soluciones muy apañadas con las que puedes conseguir un "efecto" similar a lo que buscas, sobretodo si no tienes un nivel avanzado de programacion y te conformas con un aspecto similar de la barra de carga (sinceramente yo no tengo ese nivel de programacion y creo que en todo el foro nadie lo tiene) ...
 
... pero si preguntas como consiguen el efecto original, apostaria mi mano a que lo hacen mediante shaders (por eso decia lo de un nivel de programacion mas avanzado). Por desgracia hay mucha informacion para "aprender" a programar pero muy poca informacion para aprender a programar tus propios shaders, y la que encuentras suele ser mas a nivel de muestra de lo que se puede hacer y no tanto de como lo puedes hacer; muchas veces he rebuscado informacion sobre shaders y encuentras efectos tan sencillos como maravillosos como puede ser esa barra de progreso.
 
El concepto que tengo yo de los shaders es que nunca los dominaras siguiendo ningun tutorial de internet, necesitas alguien que te enseñe (como el que quiere aprender ensamblador o ser un pirata informatico xDDD). Aprender C#, por ejemplo, puedes llegar a conseguirlo mediante tutoriales a pesar de que no tengas una base, aunque no se si llegaras a dominarlo al 100%, porque C# es un lenguaje mucho mas cercano al lenguaje humano ... pero la programacion de shaders es mucho mas "abstracta" y con muchisima matematicas.
 
Si ves un codigo en C# puedes entenderlo perfectamente y hacerte una idea de lo que hace aunque no sepas programacion (no sabras si tiene errores) pero si ves el codigo de un shader y no sabes ... lo tienes jodido para entenderlo y mucho menos saber lo que hace.

Cita de: Arthure date=1488088755Hola @ytinU
   
   
      Creo que las respuestas que te han dado son soluciones muy apañadas con las que puedes conseguir un "efecto" similar a lo que buscas, sobretodo si no tienes un nivel avanzado de programacion y te conformas con un aspecto similar de la barra de carga (sinceramente yo no tengo ese nivel de programacion y creo que en todo el foro nadie lo tiene) ...
   
   
      ... pero si preguntas como consiguen el efecto original, apostaria mi mano a que lo hacen mediante shaders (por eso decia lo de un nivel de programacion mas avanzado). Por desgracia hay mucha informacion para "aprender" a programar pero muy poca informacion para aprender a programar tus propios shaders, y la que encuentras suele ser mas a nivel de muestra de lo que se puede hacer y no tanto de como lo puedes hacer; muchas veces he rebuscado informacion sobre shaders y encuentras efectos tan sencillos como maravillosos como puede ser esa barra de progreso.
   
   
      El concepto que tengo yo de los shaders es que nunca los dominaras siguiendo ningun tutorial de internet, necesitas alguien que te enseñe (como el que quiere aprender ensamblador o ser un pirata informatico xDDD). Aprender C#, por ejemplo, puedes llegar a conseguirlo mediante tutoriales a pesar de que no tengas una base, aunque no se si llegaras a dominarlo al 100%, porque C# es un lenguaje mucho mas cercano al lenguaje humano ... pero la programacion de shaders es mucho mas "abstracta" y con muchisima matematicas.
   
   
      Si ves un codigo en C# puedes entenderlo perfectamente y hacerte una idea de lo que hace aunque no sepas programacion (no sabras si tiene errores) pero si ves el codigo de un shader y no sabes ... lo tienes jodido para entenderlo y mucho menos saber lo que hace.
   


Tocino y velocidad. Haga uso o no de Shaders, en algún momento tendrás que decidir si lo quieres hacer todo 2D, o bien lo mueves con geometría 3D. Sencillamente es que la pregunta es demasiado genérica y hay muchísimas formas de hacerlo, cada una con sus Pros y sus Cons.
 
 
 
@ytinU, sería recomendable que buscases un video de referencia de algún juego o lo que sea dónde encuentres el efecto concreto que tú buscas, y podamos ayudarte a elegir la mejor forma de hacerlo en Unity.

Cita de: pioj date=1488092764Tocino y velocidad. Haga uso o no de Shaders, en algún momento tendrás que decidir si lo quieres hacer todo 2D, o bien lo mueves con geometría 3D. Sencillamente es que la pregunta es demasiado genérica y hay muchísimas formas de hacerlo, cada una con sus Pros y sus Cons.
   


Pues me quedo con el tocino, que por lo menos llena bien el estomago xDDD
 
... aunque el hecho que alguien pregunte como hacer una barra de progreso en especifico, que encima ponga una captura para que no hayan dudas y se le entienda bien lo que quiere hacer, que se pueda observar que es una imagen plana y alguien salte con que es una pregunta muy generica (mas especifica la pregunta no puede ser porque no solo lo ha explicado, sino que hasta ha puesto una imagen para que no hayan dudas) o sobre geometria 3D cuando se trata de un componente 2D (por lo menos las imagenes planas suelen ser en 2 dimensiones si no me equivoco, todavia no he visto ninguna en 3 dimensiones) ...
 
Otros compañeros del foro, aunque no tienen la certeza de como esta o la forma correcta de hacerlo, han dado alternativas con las que seguro se puede conseguir un efecto muy parecido a lo que se busca, y que el autor agradecera o deberia agradecer. Yo me limite a decir que creia que estaba hecho con shaders, he visto muchos efectos similares con el uso de shaders, pero como no se programarlos me quede ahi (ojala pudiera ayudarle mas, señal de que sabria del tema shaders) ... mmm y segun otros la pregunta no estara clara xDDD
 
Un muy cordial saludo

Etiquetas: