Jump to content

MisterioElGatoConSuerte

Fosiles
  • Content Count

    23
  • Joined

  • Last visited

Community Reputation

3 Neutral

About MisterioElGatoConSuerte

  • Rank
    Iniciado

Profile Information

  • Especialidad
    Diseñador

Recent Profile Visitors

587 profile views
  1. Hola este problema que tuviste me animo a hacer un script en base al que tu hiciste, no se si sea mas cómodo pero aquí esta xP using UnityEngine; using System.Collections; using UnityEngine.UI; public class SubTitulos : MonoBehaviour{ public string[] subtitulos; public AudioClip[] audio; public float[] tiempo; // Tiempo para iniciar cada dialogo. public int contador; public Text cuadroTexto; public AudioSource voz; public void Iniciar (){ contador = 0; StartCoroutine (Subtitulo()); } public void Parar (){ StopAllCoroutines (); } public void Retornar (){ StartCoroutine (Subtitulo()); } IEnumerator Subtitulo (){ yield return new WaitForSeconds (tiempo[contador]); cuadroTexto.text = subtitulos [contador]; voz.clip = audio [contador]; voz.Play (); yield return new WaitForSeconds (voz.clip.length); contador += 1; if(contador >= subtitulos.Length){ // aqui puedes poner alguna funcion para que se ejecute al terminar todos los subtitulos. }else{ Retornar (); } } } si no te es útil quizás a otro por eso igual lo subo :'v le sea de utilidad igual lo hice por que necesito uno para mi proyecto xD. Edit: olvide decir que le añadí eso que pediste al inicio de verificar si ya acabo el audio, no creo que sea necesario eso en su lugar puedes usar "yield return new WaitForSeconds (voz.clip.length);" esto hara que espere a que la voz se termine indirectamente :'v. Saludos! Wow siempre busque como hacer eso y nunca lo encontré, eso me va a ser muy útil muchas gracias aunque no sea conmigo :'v jajajajaja Te amo lightbug (En el buen sentido de la palabra) aquí la versión final lo usare en todos mis proyectos :'v using UnityEngine; using System.Collections; using UnityEngine.UI; [CreateAssetMenu(menuName = "DialogueSystem/Dialogue")] public class DialogueDataProfile : ScriptableObject { [System.Serializable] public class DialogueData { [TextArea(3,10)] //<--- esto es una maravilla public string dialogo; public AudioClip audio; public float tieIni; // Tiempo para iniciar; } public DialogueData[] m_dataArray; } public class SubTitulos : MonoBehaviour{ //public string[] subtitulos; //public AudioClip[] audio; //public float[] tiempo; // Tiempo para iniciar cada dialogo. public DialogueDataProfile.DialogueData[] dialogos; public int contador; public Text cuadroTexto; public AudioSource voz; public void Iniciar (){ contador = 0; StartCoroutine (Subtitulo()); } public void Parar (){ StopAllCoroutines (); } public void Retornar (){ StartCoroutine (Subtitulo()); } IEnumerator Subtitulo (){ yield return new WaitForSeconds (dialogos[contador].tieIni); cuadroTexto.text = dialogos[contador].dialogo; voz.clip = dialogos[contador].audio; voz.Play (); yield return new WaitForSeconds (voz.clip.length); contador += 1; if(contador >= dialogos.Length){ // aqui puedes poner alguna funcion para que se ejecute al terminar todos los subtitulos. }else{ Retornar (); } } } ahora con la mejora :3
  2. Saludos GameMakers Buenas, tengo un pequeño problemita no se si a otros le a pasado pero cada vez que voy a iniciar sección me dice que la contraseña es incorrecta para poder iniciar sección tengo que darle a recuperar contraseña cada vez que voy que iniciar sección y me a comensado a resultar algo tedioso, quisiera saber si estoy haciendo algo mal o no se si a alguien mas le esta pasando lo mismo, agradeseria mucho que alguien me eche una mano :)
  3. Saludos Programadores Tengo mucho tiempo sin pasarme por aquí y he echo un pequeño código que creo que le resultara útil para muchos que estén iniciando y e decidido compartirlo con ustedes para empezar de nuevo en esta comunidad con el pie derecho x'D El script reproduce aleatoriamente las músicas dadas en una variable con una transición para que no cambien de golpe. Solo necesitan agregar el script a un GameObject vacío y agregarle el tiempo que desean que use para la transición y agregar una lista de músicas a reproducir. Editado: using UnityEngine; using System.Collections; using UnityEditor; // Ayuda: Boris 1998 registrado en Forum.unity.com public class ReproductorMusica : MonoBehaviour{ public AudioClip[] musicas; // Musicas a reproducir. public float fade = 2; // tiempo tardado en la trasicion de las musicas. public Vector2 lapsos = new Vector2(0,200); // lapsos de tiempo sin sonido, en segudos. [Range(0f,1f)] public float volumen = 1;// volumen deseado que se escuche la musica. public AudioClip backGround; // musica a reproducir durante el lapso. private AudioSource audio1; private AudioSource audio2; private int musicaT; public static ReproductorMusica reproductor; void Start (){ reproductor = gameObject.GetComponent<ReproductorMusica> (); audio1 = gameObject.GetComponent<AudioSource> (); if(audio1 == null){ gameObject.AddComponent<AudioSource> (); audio1 = gameObject.GetComponent<AudioSource> (); } try { audio2 = gameObject.transform.GetChild(0).gameObject.GetComponent<AudioSource> (); } catch (System.Exception ex) { if(gameObject.transform.childCount == 0){ GameObject ob = new GameObject (); ob.name = "ReproductorSecundario"; ob.transform.SetParent (transform); } gameObject.transform.GetChild(0).gameObject.AddComponent<AudioSource> (); audio2 = gameObject.transform.GetChild(0).gameObject.GetComponent<AudioSource> (); } musicaT = Random.Range (0,musicas.Length); StartCoroutine (Reproducir(audio1)); } public static void Volumen (float vol){ ReproductorMusica.reproductor.audio1.volume = vol; ReproductorMusica.reproductor.audio2.volume = vol; } public static void CambiarMusica (AudioClip musica){ ReproductorMusica.reproductor.StopAllCoroutines (); ReproductorMusica.reproductor.StartCoroutine (ReproductorMusica.reproductor.RPA(musica)); } IEnumerator RPA (AudioClip musica){ AudioSource ad,ad2; if (audio1.clip != null) { ad = audio2; ad2 = audio1; } else { ad = audio1; ad2 = audio2; } ad.clip = musica; ad.Play (); StartCoroutine (FadeStart(ad,fade,volumen)); while (ad2.volume > 0) { ad2.volume -= volumen * Time.deltaTime / fade; yield return null; } ad2.Stop (); ad2.clip = null; ad2.volume = volumen; musicaT = Random.Range (0,musicas.Length); yield return new WaitForSeconds(ad.clip.length-fade); yield return StartCoroutine(FadeOut (ad, fade)); } public static void Apagar (){ ReproductorMusica.reproductor.StopAllCoroutines (); ReproductorMusica.reproductor.StartCoroutine (ReproductorMusica.reproductor.AP()); } IEnumerator AP (){ while (audio1.volume > 0) { audio1.volume -= volumen * Time.deltaTime / fade; audio2.volume -= volumen * Time.deltaTime / fade; yield return null; } audio1.Stop (); audio1.clip = null; audio1.volume = volumen; audio2.Stop (); audio2.clip = null; audio2.volume = volumen; } public static void Reiniciar (){ ReproductorMusica.reproductor.StopAllCoroutines (); AudioSource ad,ad2; if (ReproductorMusica.reproductor.audio1.clip != null) { ad = ReproductorMusica.reproductor.audio2; ad2 = ReproductorMusica.reproductor.audio1; } else { ad = ReproductorMusica.reproductor.audio1; ad2 = ReproductorMusica.reproductor.audio2; } ReproductorMusica.reproductor.musicaT = Random.Range (0,ReproductorMusica.reproductor.musicas.Length); ReproductorMusica.reproductor.StartCoroutine (ReproductorMusica.reproductor.Reproducir(ad)); ReproductorMusica.reproductor.StartCoroutine (ReproductorMusica.reproductor.AP1(ad2)); } IEnumerator AP1 (AudioSource ad){ while (ad.volume > 0) { ad.volume -= volumen * Time.deltaTime / fade; yield return null; } ad.Stop (); ad.clip = null; ad.volume = volumen; } IEnumerator FadeStart (AudioSource audioSource, float FadeTime, float vol) { audioSource.volume = 0; while (audioSource.volume < vol) { audioSource.volume += vol * Time.deltaTime / FadeTime; yield return null; } audioSource.volume = vol; } IEnumerator Reproducir (AudioSource ad){ ad.clip = musicas [musicaT]; ad.Play (); StartCoroutine (FadeStart(ad,fade,volumen)); musicaT = Random.Range (0,musicas.Length); yield return new WaitForSeconds(ad.clip.length-fade); yield return StartCoroutine(FadeOut (ad, fade)); } IEnumerator FadeOut (AudioSource audioSource, float FadeTime) { AudioSource audioSource2; if (audioSource == audio1) { audioSource2 = audio2; } else { audioSource2 = audio1; } float lp = Random.Range ((int)lapsos.x, (int)lapsos.y); if(lp == 0){ StartCoroutine (Reproducir (audioSource2)); }else if(backGround != null){ StartCoroutine (FadeStart(audioSource2,fade,volumen*0.75f)); audioSource2.clip = backGround; audioSource2.Play (); audioSource2.loop = true; } while (audioSource.volume > 0) { audioSource.volume -= volumen * Time.deltaTime / FadeTime; yield return null; } audioSource.Stop (); audioSource.clip = null; audioSource.volume = volumen; yield return new WaitForSeconds (lp); if(lp > 0){ StartCoroutine (Reproducir (audioSource)); while (audioSource2.volume > 0) { audioSource2.volume -= volumen * Time.deltaTime / FadeTime; yield return null; } audioSource2.Stop (); audioSource2.clip = null; audioSource2.loop = false; audioSource2.volume = volumen; } } } Propiedades. fade : El tiempo que tardan las transiciones en segundos. musicas : lista de músicas a reproducir. Añadido : lapsos: lapsos de tiempo aleatorio(Vector2(Minimo,Maximo)) en el que no sonara la musica. volumen: volumen de la musica. backGround: Sonido de fondo que sonara durante los lapsos (se puede dejar en blanco). Funciones Estaticas: Volumen: cambia el volumen de la musica. CambiarMusica: cambia la musica por la musica dada con una transicion con la duracion dada en fade. Apagar: apaga el reproductor. Reiniciar: Reinicia el reproductor. Aquí pueden descargar el código. PD: no soy bueno comentando así que no comento los códigos espero entiendan el código en caso de que tengan que modificar algo :'v Edit: le cambie el titulo por que creo que generaba confucion.
  4. Bienvenido, Wow tienes una bucantidad de projectos.
  5. O.o? pense que se movia con fisica, creia que ese era el problema de la SpiderCat, pero ahora que lo pienso la fisica del unity no permitiria lo del diglett :v y por si te silve de algo(no se por que no lo mencione antes xD) lo del diglett me ocurrio fue que cuando arranco arranco adentro del bloque no podia saltar ni nada solo moverme al vacio :´v
  6. Y a este truco lo llamo el diglett :3 y con unstedes la asombrosa !!SSSSSPider Cat!! Creo que te tengo la solucion para lo de SpiderCat, podria hacerte un script para resolver eso si me lo permites claro :v PDT: Uso UnityScripts
  7. Si, yo estoy de acuero con ellos, yo te recomiendo que bloquees la camara en una sola direccion, y que los botones no hagan girar a la gata sino que hagan que se mueva en la direccion deseada y claro que la gata mire en dicha direccion xD Yo te recomiendo que la camare quede algo como esta imagen: Aqui el gato caza bug trabajando denuevo, descubri que si le saltas a los bloques de arena antes de que se caigan no se caen :´v y luego no se puede saltar y se pone algo resbaloso D:! !!la probre gata patina!! Despues de varios intentos, pense o solo pasa cuando son 2 arenas juntas, o tube mala suerte :´V jajajajaja, pero luego agarre a este trabieso: Jujuju estar arenas parecen llenas de bugs aqui encontre a esta que le tiene miedo a las alturas y se agarro del primer cubo que encontro para no seguir callendo: O.....O !!!WTF!!! aqui fue cuando intente montar una arena salbaje y callo y me dejo suspendodo: si te silbe de algo la gata dio un minisalto cuando cai en la arena y la arena tardo en reaccionar.
  8. Jajajajajaja pues para evitar que me tiren la puerta en la cara, creo que le dare un giro al juego :´v Bueno estare ausente un tiempo en lo que invento una nueva historia y nombre :´v cualquier suguerencia es bien venida Saludos :3
  9. No, no quiero cambiarle el nombre ni nada xD, la pregunta es tendre problemas con este projecto, si le cambiara el nombre fuera plajio xD solo quiero modernisarlo. Por que si tendria problemas, entonces no solo le cambiaria el nombre lo cambiaria completamente(la historia y todo) solo mantendria la idea de evolucion. el problema seria inventar otra historia :c
  10. Buenas quisiera hacerles una pregunta sobre este projecto, es que muchos compañeros me dicen que tendre problemas con nintendo, este es un juego muy biejo y no pretendo ganar nada con el mas que hacer curriculum ¿Ustedes creen que pueda tener problemas con nintendo? si ese fuera el caso ¿Alguna manera para obtener permiso?
  11. ¬¬ no confio en ese tiempo tu heres el programador del juego orita y lo colocaste con codigos(Tramposo) ¬¬ Me gusta el juego espero y sigas avanzando asta terminarlo sigue contandonos los avances saludos :3
  12. Siempre hay forma de hacer los marcadores sin perdel ese toque, solo no tienes que poner cuantas monedas son las que se nesesitan, pero almenos sabes cuantas llevas, y marcar las veces que repites no le quita nada xD el tiempo no c :v, yo solo digo que pongan algo por ahi jejeje es que la pantalla se ve muy peladita, pero ya saben es mi opinion(no tienen que tomarlo en cuenta) :´v Ahora si puedo disfrutarlo bien no sabia lo de la camara :3 Y aprobecho este momento para informarles que soy todo un crack !!S++ papus superenlo!! PDT: despues de durar un buen rato sin hacer nada con la camara lo mas alejada posible, descubrin un bug que creo que se les escapa, la camara se puso temblorosa.
  13. Jajajajajaja tenia la pc en mute perdona jajajajaaajajaja lol :´v si ahora los veo que solo le falta la musica xD si no se desiden por la musica les recomiendo sonidos anvientales, siempre son bien venidos :3
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...