Transiciones
Clase 17 de 31 • Curso de Programación 2D con Unity: Intermedio
Contenido del curso
Clase 17 de 31 • Curso de Programación 2D con Unity: Intermedio
Contenido del curso
Divani David Fuentes Marcos
Sebastian Cruz
Daniel Sanchez
Alejandro Medina Castillo
Rogelio Gomez
Oscar Rodrigo Leon Mojica
Francisco Sánchez
Daniel Sanchez
Luca Cristian Manea
Juan José López Torres
Cristian Javier Lizardìa
Facundo Castro
Jahiro Bojorquez Uriarte
Cristian David Arroyo Noreña
Si por algún motivo no les esta mostrando el sprite fíjense que el transform del GameObject fade tenga 0 en Z... me paso, lo dejo por si alguien mas tiene un problema similar
profe, este fade tambien se puede aplicar a la UI??
Claro que si!!! hay un método DOFade para el componente Image de los elementos de UI
Reto completado, les dejo mi código, lo resolví con una corutina, por cierto si regresan al menu principal probablemente les lanzara un error en el event system, solo actualizenlo al nuevo input y ya queda funcionando.
Pongo link al gif que no se porque no se pudo publicar directamente https://imgur.com/gallery/HtjmQ1U
[ContextMenu("FadeIn")] public void FadeIn() { spriteRenderer.DOFade(1,2); StartCoroutine(FadeInCoroutine()); } public IEnumerator FadeInCoroutine() { yield return new WaitForSeconds(2); SceneManager.LoadScene("Main"); }
Gracias, me ayudo tu comentario y código.
si le sale un error con el event system, vayan a file -> build settings -> player settings -> other settings ->active input handling y seleccionen both unity debera reiniciarse
profe en DOFade y en DG.Tweening dice un error
De pronto el plugin de DoTween no esté instalado correctamente :thin
quise resolverlo utilizando un onClick desde el botton de la gui y aplicar la misma funcion que vimos en esta clase pero genera errores por el input system, como puedo solucionarlo?
Sube una captura de tu error .
La marena en que yo lo hice fue para que al cargar el Menu tenga FadeOut, y recien al presionar el boton de Play tenga el FadeIn y pase al Main. Lo hice de la siguiente manera: Dentro de la escena Menu cree otro objeto 2d como el Fade del Main, con su script igual(solo que lo llame FadeTitle). A este le cree y asigne un tag Fade. Cree en la raiz de la jerarquia un objeto vacio que llame Scenemanager al cual le agregue el siguiente codigo:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class SceneController : MonoBehaviour { FadeTitle fade;//creo una variable del "tipo" "nombre del script" que quiero llamar void Start() { fade = GameObject.FindGameObjectWithTag("Fade").GetComponent<FadeTitle>();//al objeto que tiene el script le puse el tag "Fade", asi lo puedo traer } public void Play() { fade.FadeIn(); Invoke("loadGameScene", 2f);//me sirve llamarlo asi ya que le puedo pasar como segundo parametro un delay para darle tiempo al efecto del Fade } void loadGameScene() { SceneManager.LoadScene("Main"); } }
Luego voy al boton de Play que habia creado, a su metodo OnClick() le arrastro el SceneManager, y selecciono la funcion Play.
Hola!! Reto completado tambien quise salir de mi zona de confort y probar si podia hacer algo mas, y aqui esta pude hacer una pantalla de carga :)
https://www.youtube.com/watch?v=zAItadFa2kY&ab_channel=captainchef
Yo resolví el reto, dejando un listener en el boton de play que active el fade y que espere una corrutina de 2 segundos para cambiar de escena:
public class SceneM : MonoBehaviour { public Button cambiarEscena; public GameObject fadeMenu;
void Start() { cambiarEscena.onClick.AddListener(ChangeScene); } IEnumerator TiempoCambiarEscena() { yield return new WaitForSeconds(2); SceneManager.LoadScene(1); } public void ChangeScene() { Destroy(cambiarEscena); fadeMenu.GetComponent<Fade>().FadeOut(); StartCoroutine(TiempoCambiarEscena()); }