Jump to content

Pere

Registrados
  • Content Count

    118
  • Joined

  • Last visited

  • Days Won

    19

Pere last won the day on April 22

Pere had the most liked content!

Community Reputation

82 Excellent

1 Follower

About Pere

  • Rank
    Asiduo

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

809 profile views
  1. Ei, yo me vi en las mismas hace poco y acabe creando un script configurable para dialogos, muy sencillo de configurar. Se basa en un array de frases, cada frase es de un struct definido que he llamado _sentence. Cada _sentence esta compuesta por el texto, el personaje al que pertenece y si tiene que activar o desactivar el bocadillo que rodea al texto. Puedes tener multiples NPC's cada uno con frases diferentes, bocadillos o no, y activarlos o desactivarlos en la frase que quieras.... la verdad es que se me hace complicado de explicar como es y como funciona, casi que lo mejor es que le des un vistazo al vídeo que te dejo al final. El script vendría a ser este: public class DialogManager : MonoBehaviour { /* * El _dialogBox es opcional, es una caja * que rodea al texto, el script solo * la activa y desactiva. */ [System.Serializable] public struct _dialogBox { public int _character; //Personaje al que pertenece. public GameObject _box; //Objeto a activar / desacticar } /* * _sentence. El dialogo se construye en base a un array * de esta estructura */ [System.Serializable] public struct _sentence { public int _character; //Caracter al que pertence la frase. public string _2say; //Lo que tiene que decir. public bool _active; //Indica si se tiene que activar el marco de dialogo. public bool _deactive; //Se desactivara el marco de dialogo en la siguiente frase. } public TextMeshPro[] _textContainers; //Array de TextMeshPro en los que se muestra el texto public _sentence[] _sentences; //Array de frases que diran nuestros protagonistas public _dialogBox[] _dialogBoxes; //El marco que puede mostrarse rodeando las frases. [SerializeField] private float _speedWrite; //Tiempo que pasa entre que se escribe una letra y la otra. //private bool _enableDisableBox = false; private int _index = 0; //Contador interno para saber por que frase vamos. private void Start() { CleanText(); //Limpiamos el texto que se pueda encontrar en los textmeshpro if (_sentences[_index]._active == true) { //En el caso de que la primera frase lo indique activamos el dialogbox. EnableDisableBox(true); } //Empezamos la conversacion. StartCoroutine(Talk()); } private void Update() { if (Input.GetMouseButtonDown(0)) { /*En el caso de que se detecte una pulsacion de mouse se continua el dialogo. */ ContinueDialog(); } } public void CleanText() { //Eliminamos el texto de todos los TextMeshPro for (int i = 0; i < _textContainers.Length; i++) { _textContainers.text = ""; } } /* * Esta funcion se ejecuta en paralelo. * Escribe las frases letra por letra. * */ IEnumerator Talk() { //Elimina el texto previo. _textContainers[_sentences[_index]._character].text = ""; foreach (char letra in _sentences[_index]._2say.ToCharArray()) { //Suma cada letra al TextMeshPro _textContainers[_sentences[_index]._character].text += letra; //La funcion se espera el tiempo indicado. yield return new WaitForSeconds(_speedWrite); } } /* * Activa o desactiva el elemento que puede contener el texto * y que se lo indicamos en el editor * */ public void EnableDisableBox(bool enable) { _dialogBoxes[_sentences[_index]._character]._box.SetActive(enable); } /* * Continua con la siguente frase del dialogo */ public void ContinueDialog() { if (_sentences[_index]._deactive == true) { //Si la frase anterios tenia que ser desactivada llamamos a //la funcion que desactiva su globo EnableDisableBox(false); } //Aumentamos en 1 el _index con lo que pasamos a la siguiente frase. _index += 1; //Comprobamos que tenemos otra sentencia que escribir if (_index < _sentences.Length) { if (_sentences[_index]._active == true) { //Si es necesario activamos su dialog box EnableDisableBox(true); } StartCoroutine(Talk()); } else { //si es la ultima frase, limpiamos el texto. CleanText(); } } } Si has empezado a usar Fungus esto te va a parecer del paleolitico y super simple, pero como ejemplo de como crearlo no esta mal del todo.
  2. Hola, Os dejo un par de vídeos sobre como implementar un sistema de navegación Point & click con navmesh, en el primero se configura el sistema y veamos un solo agente. En el segundo se crean dos tipos de terreno diferentes y dos agentes que responden de forma diferente al terreno. Son muy sencillos y cortos, espero que le puedan servir a alguien 🙂 Saludos.
  3. dios, que currada de canal! Tienes toda mi admiración y mi suscripción.
  4. WTF! Genius! A ver si encuentro un poquitín de tiempo para jugar con tu inventazo!
  5. Pere

    [GAME] SOULBOUND

    A mi tambien me ha recordado un poco a Liombo. Me encanta! Felicidades.
  6. Pere

    ANSWERED spawner

    Me alegro que te funcionase. No se si entiendo bien el problema del prefab y el player pre-informado porque no nunca he intentado nada parecido. Pero al crear el prefab no puedes asignarle un objeto en concreto dentro del juego, sino una plantilla. A ver si me explico..... no le puedes asignar tu player, sino decirle que contendrá un objeto de tipo player, pero no es el que tu tienes en la pantalla.
  7. Pere

    ANSWERED spawner

    Puedes coger el transform del Player en la función Start del Lizard. El codigo vendria a ser algo así: ElPlayer = GameObject.FindGameObjectWithTag("Player"); Por otro lado, al hacer el spawn con el Instantiate usas muchos recorsos, que si solo instancias un par de objetos no pasa nada, pero como te pongas a spawnear por decenas.... quizás sí que se nota en el rendimiento, lo mejor es trabajar siempre con objetos cacheados. Te dejo un vídeo, donde explico como hacer un spawn, y da la posibilidad de trabajar con objetos cacheados, el código del script tambien está disponible en esta dirección http://martra.uadla.com/2020/01/23/creacion-de-un-spawner-para-unity/, puedes usarlo como plantilla para tu spawn. Espero que te sirva de algo!
  8. Pere

    [GAME] Way Home - 2D

    bueno, No he modificado la dificultad todavia, pero si que he modificado la linea de fin del segundo nivel, ya que podia pasar como le ha pasado a @zelleGames, que no conseguia pasar al acercarse a la luz.
  9. Pere

    [GAME] Way Home - 2D

    Pues seguramente tienes toda la razon! Mi familia me dice justamente lo mismo. Y mira que lo rebaje un poco.... antes era peor! Lo del segundo nivel no lo tengo del todo claro, por que al llegar a la luz tendrías que haber pasado de nivel, bueno, realmente tienes que ir un poro mas alla de la luz, modificare el collider que lo detecta y lo acercare un poco mas. Mil gracias por probarlo y por los comentarios, fijo que encuengtro un momento para modificarlo. Muchas gracias por los comentarios y por jugar! Lo de la primera fase muy dificil veo que es algo que todos estais deacuerdo. La segunda.... no se si queda claro nada, pero como es un sueño, era más o menos buscado, que te encuentra ahi en medio sin saber bien que tienes que hacer, te matan, pero no pasa nada, continua todo igual. La tercera es todavía mas rara 🙂 Pero no se si alguin ha conseguido acabar la segunda. Voy a ver si funciona el final de la segunda, que ahora, por otro comentario, no lo tengo claro.
  10. Pere

    [GAME] Way Home - 2D

    Gracias!! A mi la ambientación tambíen me gusta 🙂
  11. Pere

    [GAME] Way Home - 2D

    Si 🙂 Bueno, la verdad es que siempre es una sensación agridulce publicar algo.... Lo de la falta de tiempo, es desesperante.... sobretodo porque creo que se te alargan los plazos de entrega... juegos que se podrian hacer en una semana se convierten en meses.... Pero ehhhh!!!! Que es una afición, y estoy muy contento de este juego. De los tres o cuatro que tengo, creo que esta entre los dos mejores 🙂.... Gracias por jugarlo! Estaré encantado de recibir los comentarios.
  12. Pere

    [GAME] Way Home - 2D

    Bueno..... Digamos que ya está publicado 🙂 Como mínimo el primer nivel, con modificaciones, y un par de mini niveles mas con alguna pantalla intermedia. Al final me ha pasado lo de siempre, falta de tiempo y pérdida de interés paulatina..... Lo podeis encontrar en kongregate, itch.io gamejolt y newgrounds. Por ahora, solo en versión WEB.... y seguramente se quede así.
  13. Pere

    [GAME] Way Home - 2D

    Nuevo devlog :-) En esta ocasión he acabado una de las pesadillas que tendrá Mini en el segundo nivel. El ambiente es quizas menos oscuro, pero mas difuminado, las lineas no son tan rectas y hay mucho mas humo.... es un sueño. Cuesta saber que esta pasando, incluso cual es el objetivo.
  14. pues proyectazo! Y no desfallezcas, yo tengo dos niñas y alguna horita a la semana voy encontrando. Se trata de adaptar tamaño de proyectos y expectativas.
  15. Pere

    [GAME] FPS Online

    pues como ejercicio esta bien :-) PEro como dicen los compis, tenemos esa sensación de proyecto de ejemplo que hacemos todos al empezar con Unity 3D. Pero todos hemos pasado por aqui! Animo y a por mas.
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...