Jump to content

Search the Community

Showing results for tags '2D'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Proyectos
    • Offtopic
    • Unity Feeds
    • Website
  • Mesa de ayuda
    • Unity
    • Arte
    • Builds & Dispositivos
    • Otras Especialidades
  • Aportes de la Comunidad
    • Recursos
    • Eventos
  • Bolsa de trabajo & Colaboraciones
    • Ofertas y Demandas
  • Post Antiguos
    • General (Antiguo)

Blogs

There are no results to display.

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Especialidad

Found 103 results

  1. Buenas gente. Como va todo? Hoy les traigo un problema que estoy teniendo y no puedo solucionar.. Para ponerlos en contexto estoy haciendo un videojuego 2D en el cual mueves al personaje solo moviendo el mouse (Es decir, sigue al mouse). El botón "Play" es el jugador. Entonces cuando clickeas el jugador, el personaje se posiciona y comienza el juego. Para hacer este posicionamiento uso una serie de animaciones, por ende tengo que saber cuando termina la animacion para asi comenzar el juego.. ¿Como puedo detectar el finalizar de una animacion? Estoy usando Animator..
  2. Hola, Estoy empezando con un juego de futbol y no me acaba de convencer como me queda el movimiento del balón cuando se dispara. Actualmente lo tengo así: He probado también como queda con impulse, sin rigidbody usando translate y tampoco me gusta como queda, ya que el balón debería moverse cuando pulsas un botón pero no continuamente. ¿Alguien ha hecho algo parecido y sabe como puedo hacerlo?
  3. Hola comunidad, tengo un problema que me viene jodiendo bastante hace un tiempo. Estoy creando un juego de puzzles en el que es necesario tener mecáninicas tan simples como mover una caja o subir en plataformas q se mueven. Lo de mover cajas lo tengo resuelto de la siguiente manera, el personaje entra en contacto con la caja, presiona el botón de acción y en ese momento hago la caja hija del player. De esta forma ya puedo arrastrarla, ahora, si empujo la caja contra una pared y sigo haciendo fuerza el player atraviesa la caja esta se mueve de su posición (un desastre), lo resolví de la siguiente forma: //si el personaje tiene la caja agarrada else{ float h = Input.GetAxis("Horizontal"); if(izqDeLaCaja){ //leo de la caja un ray q marca cuando choca a su izquierda if (h < 0) { //si choca y continúo empujando en esa dirección hace la fuerza = 0 h *= 0; } else { h*=1; } }else if(derDeLaCaja){ //igual q arriba pero para el lado derecho if (h > 0) { h *= 0; } else { h*=1; } } moveDirection2D = new Vector2(h, 0); moveDirection2D = transform.TransformDirection(moveDirection2D); moveDirection2D *= speed; moveDirection2D.y -= gravity * Time.deltaTime; controller.Move(moveDirection2D * Time.deltaTime); } Lo que quisiera saber es si hay una forma más óptima de hacer esto, porque cuando el jugador es en 3d la cosa se complica y queda u bloque de código un poco grande. En cuanto a lo del player sobre las plataformas, también lo resuelvo haciendo hijo al jugador de la plataforma que se mueve, pero la plataforma padre me afecta la escala del player al hacerlo su hijo, no se por qué puñetera razón:
  4. Aqui os dejo una pequeña demo que he hecho en cuatro fines de semana (porque sí, porque me apetecía hacerlo). Es una pequeña demo de un juego de plataformas 2d de 2 niveles usando graficos pixel art y Unity. Podés probarlo aquí: http://www.jocyf.com/Preview/8BitPlatform/index.html Edito: Por cierto, hay unas cuantas cosas más que he ido publicando en mi página web y que podéis ver desde aquí: http://www.jocyf.com/previews.html
  5. Muy buenas a todos gente! Pues lo que respecta al titulo, busco armar un "Esqueleto" (en este caso es para tentaculos) pero con Sprites (2D, estilo Mario bross). Mi idea base es armar el esqueleto de tal forma que al mover el ultimo hueso, se muevan todos los que vienen detras con su respectiva rotacion y posicion. ¿Alguna ayuda?
  6. Buenas gente, pues eso, como puedo "Orbitar" un objeto tomando como referencia un vector en especifico? Concretamente busco hacer lo del archivo adjunto. Otra cosa totalmente aparte, como puedo hacer que un objeto(A) se mueva en direccion a otro objeto(B)? De tal forma que el objeto A siga indefinidamente y no se pare al llegar al punto objeto A? Desde ya, muchas gracias! :D 2016-01-25-2216-56.mp4 AB.bmp
  7. Que tal!! Ya me había presentado con anterioridad y realizado una consulta por pixel perfect en otro lugar de este foro. Descubrí que al modificar la resolución a la que esta trabajando o mejor dicho visualizándose la realacion entre pixeles varia un monton, por ende para solucionarlo debo encontrar la resolución adecuada según los tiled que use. En fin. Estoy diseñando un juego plataformero al estilo mario y utilice una herramienta llamada Tiled Map Editor para crear el escenario mas fácilmente. Al momento de importar el mismo me encuentro con unas lineas del mismo color que el fondo al usar dicho mapa... Como si las uniones del mismo no se encontraran del todo bien. Sabran donde puedo configurar esto? Estuve tratando de identificar el problema dentro del programa o en unity pero no encuentro nada... Les dejo una imagen donde se ven claramente estas lineas. Ademas por si saben en la segunda imagen se puede ver el problema que aun no puedo solucionar por pixel perfect o por resolución (En los ojos de mi personaje se puede ver bien) si también saben o pueden darme alguna orientación de esto se los agradecería. GRACIAS DE ANTEMANO.!!!
  8. En esta pequeña serie crearemos desde cero un juego tipo puzzle. Programaremos cuatro Scripts que nos serviran para crear las piezas, diseñaremos "sensores", controlaremos el movimiento de las piezas y aprenderemos a importar archivos desde nuestro ordenador en tiempo de ejecución. Un tutorial muy didáctico del que podremos sacar mucho provecho para futuros juegos de mesa. ¡No os lo perdáis! https://www.facebook.com/dbJocs/
  9. En esta pequeña serie crearemos desde cero un juego tipo puzzle. Programaremos cuatro Scripts que nos serviran para crear las piezas, diseñaremos "sensores", controlaremos el movimiento de las piezas y aprenderemos a importar archivos desde nuestro ordenador en tiempo de ejecución. Un tutorial muy didáctico del que podremos sacar mucho provecho para futuros juegos de mesa. ¡No os lo perdáis! https://www.facebook.com/dbJocs/
  10. Buenas, estoy pensando en un proyecto y ya tengo algo medio decidido, de a poco voy armando y metiendo las ideas buenas, y las malas descartándolas. La cuestión esta en 2 o 3 cosas, en principio, no soy diseñador, nunca lo aprendí, y para ser sincero, aunque la programación es algo que se me hace facil, el diseño es algo que me trae de los pelos, ya que nunca entendí los programas de modelado. Ahora bien: el proyecto es una mezcla de 2D y 3D, aun no me he puesto ni a programar, básicamente estoy organizando todo en una serie de carpetas y documentos como podrán ver abajo (siempre fui un desorganizado, y entiendo muy bien que un juego necesita SI o SI ser organizado, por lo que antes de hacer nada prefiero prepararlo todo asi). Entonces: ¿Assets de modelos 3D de unidades estilo militares? ¿Assets de interiores 3D --los de la aplicación que uso son un poco limitados--? ¿Assets de "Aliens" o "unidades sobrenaturales" en 3D?, para las construcciones tengo un programita GPL que me permite hacerlas sin ser conocedor de nada (les dejo el link al final, esta muy bueno la verdad, y permite usarlo para ganar dinero asi que tambien vale), exportar e importar con sus texturas y todo, asi que esta bastante bien, al menos para mi. La cuestión es que, no tengo internet (estoy subiendo esto mediante los datos de mi celular), y no me puedo permitir una búsqueda a gran escala de assets para unity gratuitos (hasta que no vengan a instalarme internet, unas 3 semanas hasta que me lo pongan). Muchisimas gracias. LINK: http://www.sweethome3d.com/es/ (pruebenlo, de verdad, es una joya!)
  11. Hola, estoy empezando a organizar y planificar un proyecto y a nivel de formación para mi, es para Unity(para dispositivos móviles), y tengo algunas dudas de como realizar algunos módulos y procesos del juego.(No se si es en este apartado del foro donde tengo que indicar este tipo de consultas, si no es aquí pido disculpas de antemano y lo pondré en el lugar donde corresponda). Resumen del juego: Tipo de juego: Plataformas 2D (Típico juego de plataformas donde el personaje anda, corre, salta y dispara a enemigos) El usuario podrá elegir entre varios personajes: Cada personaje tendrá unas habilidades propias, ademas de las comunes y distintas ropa, armas, etc.. El usuario podrá comprar monedas para conseguir habilidades o herramientas, ropa, etc...para su personaje. Actualmente estoy empezando y lo que tengo realizado es lo siguiente: - Un personaje que anda hacia adelante y hacia atrás y también salta, este personaje ha sido creado con Spriter2D e importado a unity y tengo una formación en programación C# que con paciencia y dedicación podría conseguir mis objetivos pero claramente necesito que me orienten. Explico brevemente mis dudas: Me gustaría saber como puedo organizarme los script o que necesito indicar en esos script para conseguir hacer lo siguiente: - Que cuando el usuario entre por primera vez al juego elija el personaje y cuando empiece a jugar, ira consiguiendo objetivos y consiguiendo monedas, estas monedas las podrá cambiar por atuendos, habilidades, armas, etc... Entonces la partida se guardará en algún momento y cuando vuelva de nuevo a jugar el juego todo siga todo ahí. - Necesito conocer cómo guardar partidas o sesiones de partidas y para que los datos del personaje se carguen correctamente(tipo personaje, monedas, atuendos, nivel, etc...), así como la fase por la que va el personaje u otros datos que pueda desconocer en este momento. - A nivel de animaciones, me surge la duda de cómo hacerlo, porque ya que cuando el personaje consiga un atuendo nuevo o un arma nueva, las animaciones cambiarían. Por ejemplo la animación de andar seguirá siendo la misma salvo que cambiaría la ropa o el arma que porta el usuario, entonces no sé de qué forma orientarlo para no crear nuevas animaciones por la ropa, armas, etc... Gracias, y espero que puedan ayudarme. Saludos!!
  12. Buenas tardes, Tengo un pequeño dilema y no se porque no funciona, seguramente es una tontería pero llevo 2 horas comiéndome la cabeza y no logro encontrar el porque! Tengo un script desde donde controlo las cosas."GameControl"; using UnityEngine; using System.Collections; using UnityEngine.UI; using UnityEngine.SceneManagement; public class GameControl : MonoBehaviour { public static GameControl instance; //referencia del gamee control script que podemos acceder instantaneamente. public Text scoreText; private int puntos = ; public bool gameOver = false; public float scrollSpeed = -1.5f; public GameObject gameoverr; public int vidas =; public Text vidasText; void Awake() { //si no tenemos el control... if (instance == null) //...lo llamamos... instance = this; //...de lo contrario... else if(instance != this) //...destruye este porque esta duplicado. Destroy (gameObject); } void Start() { gameoverr.SetActive (false); PlayerPrefs.SetInt ("MyScore",); //PlayerPrefs.SetInt ("vidas",0); vidasText.text = "Lives: " + vidas.ToString(); } void Update() { if (vidas <= ) BirdDied (); } public void BirdScored() { // //si el player no puede hacer mas puntos y acabo la partida. if (gameOver) return; //si el juego no ha terminado, aumentamos el score... puntos += 1; //...i lo mostramos en el score. PlayerPrefs.SetInt ("MyScore", puntos); scoreText.text = "Score: " + puntos.ToString(); vidasText.text = "Lives: " + vidas.ToString(); } public void BirdDied() { //Activa el gameover. gameOver = true; gameoverr.SetActive (true); PlayerPrefs.GetInt ("MyScore"); } public void quitavida() { vidas -= 1; } } y tengo este otro que registra un raycast que si no colisiona con el gametag granjero hace una animación y después destruye el GO. Hasta aqui bien la cosa viene cuando le quiero decir que si no has clickado encima de el GO,con el tag " granjero", que se active el sistema de quitar una vida pasados 6 segundos, para eso llamo a la coorutina quitavida, la cual espera 6 segundos e instancia el void quitavid que se encuentra en el script anterior.Pero no hace tal cosa! este es el script ; using System.Collections; using System.Collections.Generic; using UnityEngine; public class tocagranjero : MonoBehaviour { private Animator anim; private Rigidbody2D rb2d; private GameObject gamecontrol; public AudioSource audio2; AudioSource audio; void Start() { anim = GetComponent<Animator> (); rb2d = GetComponent<Rigidbody2D>(); audio = GetComponent<AudioSource> (); gamecontrol = GameObject.Find ("GameControl"); } IEnumerator quitavida() { yield return new WaitForSeconds(6); GameControl.instance.quitavida (); Debug.Log ("te quito una vida"); } void Update () { if (Input.GetMouseButtonDown ()) { Vector3 mousePos = Camera.main.ScreenToWorldPoint (Input.mousePosition); Vector2 mousePos2D = new Vector2 (mousePos.x, mousePos.y); RaycastHit2D hit = Physics2D.Raycast (mousePos2D, Vector2.zero); if (hit.collider != null) { Debug.Log (hit.collider.gameObject.name); if (hit.collider.tag == "granjero") { anim.SetTrigger ("tocado"); GameControl.instance.BirdScored (); Destroy (hit.transform.gameObject, 2); audio2.Play (); } } } else { StartCoroutine ("quitavida"); } } } Espero que sea lo que digo una tontería....y que alguno de ustedes pueda decírmela, muchas gracias de antemano.
  13. Hola a todos! Hace un par de semanas comencé a desarrollar este pequeño juego de habilidad llamado Tap Rocket, y ahora mismo, lo he puesto en Google Play a disposición de todos, espero lo prueben y dejen su calificación, si es posible :D TAP ROCKET El juego consiste básicamente en llevar la nave hasta el combustible, no si antes evitar contacto con la rocas espaciales (asteroides, meteoritos, etc. llamadlo como queráis). Los controles son 3, uno para propulsar la nave y dos para girar de izquierda a derecha, el truco esta, en que no puedes pulsar mas de uno a la vez, si lo probáis os daréis cuenta del por que. LINK A LA PLAY STORE
  14. Hola buenas me llamo betalf y junto a un amigo tenemos pensado crear un videojuego asequible de plataformas en unity, y nos vendría bien tener un ayuda sea en el ámbito que sea, preferiblemente un dibujante es lo que mas nos urge. Yo me encargare de modelar en 3d, de hacer algunas animaciones, y también de hacer cosas con unity, y mi amigo de la programación. El juego estaría basado entre kirby y new super mario bros ya que el juego seria en 2.5d y los enemigos serian cucos.
  15. Consulta, estoy comenzando a realizar un juego en 2d con unity 5.6, diseñando las animaciones del personaje al momento de darle play y que muestre animaciones el pj comenzo a distorsionarse, es decir como que flamea(imagen) y se va distorcionando si alejo o acerco la camara de la escena, esto es normal? revise los codigos y configuraciones en sprite sin encontrar errores... le paso a alguien alguna vez? fijese las imagenes es como una linea que pasa de lado cambiando de frames o algo asi... Esta dibujado a un estilo pixel lo cual causa que se vea medio loco cuando pasa este efecto...
  16. Hola!! Estoy armando un pequeño proyecto en 2D algo que antes no había hecho (me manejo más con el 3D) y tengo una pequeña duda. A la hora de crear el personaje es mejor armarlo por piezas (Hacer el personaje con pies,manos, cabeza,etc separados y luego unirlos en un gameobject) o es mejor tener el sprite del personaje? La verdad yo me guió por la segunda pero no se, sin embargo no sabría como hacer para que pase de corriendo a caminando por ejemplo con esa, ya que trabajo con animator y no e usado el animation pero ya veré como hago. Gracias.
  17. Buen día a todos estoy haciendo un juego 2d rpg y me preguntaba si es posible poner el nav mesh en un prefabs junto un dibujo de carreteras esto es para hacer que el prefabs se vaya pintando cuando yo lo mande llamar y se pueda ir al personaje solito como un runner. es posible hacerlo?
  18. Este es mi primer juego para Android, el primero de muchos espero. Es sencillo de jugar, con un simple y delicado toque en tu pantalla tactil la bola brincará, consiguiendo asi obtener monedas y evitar los pinchos. Cuantos más puntos consigas más rápido irá el juego. Tu mejor marca la puedes encontrar grabada en el menu principal. Por ahora la unica forma de conseguir vidas es visualizando un video de 30 segundos, aunque estoy pensando seriamente en añadir la posibilidad de conseguir vidas durante el juego. Probarlo, criticar, sugerir, y si podeis, calificarlo en el rating.
  19. Estoy intentando imitar un juego de Playstation One, el juego se llama Rocks'N'Gems, si alguien pudiese ayudarme a como mover el personaje pero cuadro por cuadro como en el juego -----------------> Rocks'N'Gems Por ahora solamente tengo esto en el Script del Player ------->Script del Player Pero no se como hacer para que se mueva cuadro por cuadro o como si fuese con una cuadricula. Por cierto mi personaje se esta moviendo raro, solamente se mueve von las teclas S,D y se mueve derecha y arriba, es raro porque se supone que con la tecla S debería de ir hacia abajo no arriba. Si es necesario puedo pasar por Mensaje privado el Build de mi juego, solamente pidanmelo, gracias y Saludos.
  20. Muy buenas a todos. He estado preparando un documento de diseño del juego que quiero desarrollar. Os lo adjunto al post. Se trata de un juego de lógica/plataformas en 2D. La historia del juego se basa en una serie de relatos cortos que cuentan la historia de Xuhare, por lo que en cierto sentido es también una aventura. En principio necesito colaboración de todo tipo, arte, y sobre todo en cuanto a código para comenzar con el proyecto. Los que estéis interesados id diciendo algo en el hilo!! Documento Diseño - Xuhare v1_0.pdf
  21. ¡Saludos a todos! Recientemente unos usuarios del foro nos hemos juntado para montar un pequeño juego 2D cómico para mobile, de género Inifinite Runner. Acaba de empezar, y buscamos gente para el grupo (en especial artistas y animadores). Yo colaboro como Diseñador y Productor ocasional del juego. He hecho el proyecto público, así que tenéis acceso a él y podéis ver su progreso en todo momento. (Así luce el juego ahora mismo, con gráficos temporales, etc) Tenéis una breve descripción del proyecto y su diseño: https://bitbucket.org/unityspainrunner/runner-canibal/wiki/Home El Proyecto está colgado en repositorio de tipo GIT: https://wake_studios@bitbucket.org/unityspainrunner/runner-canibal.git Aquí tenéis el Planning de tareas del proyecto: https://trello.com/b/v5AzSTy7 Espero que os guste y os animamos a participar en él.
  22. Hola Chicos recuerdan que hace tiempo estuve aqui con algunas dudas , bueno les agradezco toda su ayuda y pues he qui les presento el juego que estube programando durante todo ese tiempo https://play.google.com/store/apps/details?id=com.wachakistudios.SVBandits&hl=es y ya hay una noticia sobre el http://www.elsalvadortimes.com/articulo/novedades/lanzan-juego-celular-personajes-politica-nacional-estan-siendo-perseguidos-justicia/20170218161215017357.html Les agradeceria mucho si la descargan y se la comparten a sus amigos gracias.
  23. Hola, resulta que tenia la necesidad de crear plataformas completas (de 3x3 o mas) que tuvieran sprites basados en tiles de 3x3 (sprites en modo "multiple"). Asi que ayer me puse a hacer una herramienta para lograr esto. Como no se me ocurria ningun nombre creativo le puse RoomCreator :) Pasos: - Se crea un objeto vacio que hara de origen del room. - Se le agrega el script RoomCreator.cs - Se setean los parametros y se pulsa crear - Opciones: - tamaño del tile (valores discretos positivos) - tiles horizontales - tiles verticales - Modos: uniform: se usa un mismo sprite inside-outside: se usa el sprite outside para el exterior, y el inside para... si.. el interior complete: se basa en una spritesheet de 3x3 y apartir de ahi se expande manteniendo los sprites de las esquinas - Layer de los tiles - si los tiles son static o no - Modo de Colliders: Individual: se crean colliders individuales a cada sprite para rellenar los tiles exteriores Row/Column: Se crean filas y columnas para rellenar los tiles exteriores (norte,sur,este y oeste) Complete: Se crea un solo Colliders para rellenar a todos los tiles none: No se crea Collider - como elegir las partes (en completo se puede elegir por sprites multiple o introducir sprites individuales) Diferentes modos de Colliders: (En la imagen los sprites de los lados no alcanzan a llenar el collider gracias a mis habilidades de dibujo xD ) Observaciones: - A mi me va genial porque mis personajes usan characterController 2D basados en raycasting, pero si tu personaje usa un rigidbody comun y corriente esos boxcolldiers pegados unos a otros traeran problemas a la larga. - Esta mas ambientado a los viejos platformes basados en tiles - Una excelente practica es la de tener el sprite ajustado a la unidad (pixels per unit), es decir que si tenes un spritesheet de 96x96 cada sprite sera de 32x32 y el ppu sera de 32. Una vez seteado esto con el parametro TileSize se ajusta a gusto. - La idea es la de crear el room, luego meterse dentro y modificarlo a medida si es necesario (Por ejemplo crear un pasillo entre dos rooms o meter un puerta en algun extremo, etc) y no tener que ir arrastrando sprite por sprite. - Los spritesSheets deben estar dentro de una carpeta "Resources" para ser utilizados. Espero que a alguien le sirva y si quieren mejorarlo no duden en resubirlo o mencionar posibles mejoras y/o bugs. Saludos Aca el paquete (actualizado): RoomCreator.unitypackage EDIT: Actualizado con modos de Colliders (gracias por la sugerencia! )
  24. Hola, siempre quise saber como funcionaban las camaras 2D que cuando llegabas a un cierto punto del nivel se quedaban quietas y/o modificaban alguna caracteristica como el target o el tamaño, etc. Cuando me sente dos segundos a pensar como era no podia creer que fuera tan facil de implementar. Basicamente cuando el transform objetivo normal entra en un trigger2D que sea un nodo, el node se impone de target. Cuando sale el target vuelve a ser el target normal. Para cada nodo se puede setear: - tamaño ortografico (solo para proyeccion ortografica) - FOV (solo para proyeccion perspectiva) - lerp del ajuste de proyeccion - lerp de seguimiento al target - offsetX - offsetY camara 2D: //Camera2D.cs ------------- (va en camara) using System.Collections; using System.Collections.Generic; using UnityEngine; public class Camera2D : MonoBehaviour { struct CameraProperties { public float lerpValue; public float projLerpValue; //orthographic public float size; //perspective public float fov; public float offsetX; public float offsetY; public Transform target; } //public public float m_lerpValue = 2; public float m_projLerpValue = 3; public float m_size = 4; public float m_fov = 50; public float m_offsetX = 0; public float m_offsetY = 0; Transform m_target; CameraProperties normalCam = new CameraProperties(); Transform m_transform; Camera m_cam; void Start () { m_transform = transform; m_cam = GetComponent<Camera>(); normalCam.lerpValue = 2; normalCam.projLerpValue = 3; normalCam.size = 4; normalCam.fov = 50; normalCam.offsetX = 0; normalCam.offsetY = 0; normalCam.target = Player.instance.transform; UseNormal(); transform.position = new Vector3(m_target.position.x , m_target.position.y , transform.position.z); } public void UseOrthographicView(float lerpValue , float projLerpValue, float size, float offsetX , float offsetY , Transform target) { m_lerpValue = lerpValue; m_projLerpValue = projLerpValue; m_size = size; m_offsetX = offsetX; m_offsetY = offsetY; m_target = target; } public void UsePerspectiveView(float lerpValue, float projLerpValue, float fov, float offsetX, float offsetY, Transform target) { m_lerpValue = lerpValue; m_projLerpValue = projLerpValue; m_fov = fov; m_offsetX = offsetX; m_offsetY = offsetY; m_target = target; } public void UseNormal() { m_lerpValue = normalCam.lerpValue; m_projLerpValue = normalCam.projLerpValue; m_size = normalCam.size; m_fov = normalCam.fov; m_offsetX = normalCam.offsetX; m_offsetY = normalCam.offsetY; m_target = normalCam.target; } void LateUpdate () { m_transform.position = new Vector3 ( Mathf.Lerp(m_transform.position.x , m_target.position.x + m_offsetX, m_lerpValue * Time.unscaledDeltaTime), Mathf.Lerp(m_transform.position.y , m_target.position.y + m_offsetY, m_lerpValue * Time.unscaledDeltaTime), m_transform.position.z); //Orthographic if (m_cam.orthographic) m_cam.orthographicSize = Mathf.Lerp(m_cam.orthographicSize, m_size, m_projLerpValue * Time.unscaledDeltaTime); else //Perspective m_cam.fieldOfView = Mathf.Lerp(m_cam.fieldOfView, m_fov, m_projLerpValue * Time.unscaledDeltaTime); } } Y el nodo o trigger del target CameraNode.cs using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(Collider2D))] public class CameraNode : MonoBehaviour { public float m_lerpValue = 2; public float m_projLerpValue = 2; [Header("Orthographic Size")] public float m_size = 5; [Header("Perspective FOV")] public float m_fov = 50; [Header("Offset")] public float m_offsetX = 0; public float m_offsetY = 0; Camera2D cam2D; void Start() { if (Camera.main.GetComponent<Camera2D>()) cam2D = Camera.main.GetComponent<Camera2D>(); } void OnDrawGizmos() { Gizmos.color = new Color(0, 0, 1, 0.1f); if (Camera.main.orthographic){ Gizmos.DrawCube(transform.position + Vector3.right * m_offsetX + Vector3.up * m_offsetY, new Vector3(2 * m_size * Camera.main.aspect, 2 * m_size, 1)); } else { float distance = transform.position.z - Camera.main.transform.position.z; float verticalHalfSize = distance * Mathf.Tan(Mathf.Deg2Rad * (m_fov / 2)); Gizmos.DrawCube(transform.position + Vector3.right * m_offsetX + Vector3.up * m_offsetY, new Vector3(2 * verticalHalfSize * Camera.main.aspect, 2 * verticalHalfSize, 1)); } } void OnTriggerEnter2D(Collider2D col) { if (col == Player.instance.boxCollider) { if(Camera.main.orthographic) cam2D.UseOrthographicView (m_lerpValue , m_projLerpValue, m_size , m_offsetX , m_offsetY, transform); else cam2D.UsePerspectiveView(m_lerpValue, m_projLerpValue, m_fov, m_offsetX, m_offsetY, transform); } } void OnTriggerStay2D(Collider2D col) { if (col == Player.instance.boxCollider) { if (Camera.main.orthographic) cam2D.UseOrthographicView(m_lerpValue, m_projLerpValue, m_size, m_offsetX, m_offsetY, transform); else cam2D.UsePerspectiveView(m_lerpValue, m_projLerpValue, m_fov, m_offsetX, m_offsetY, transform); } } void OnTriggerExit2D(Collider2D col) { if (col == Player.instance.boxCollider) { cam2D.UseNormal (); } } } Saludos y espero que sirva OJO! --> En el codigo tengo "Player.instance.boxCollider", basta con referenciar cualquier collider a gusto Agregué: - Funcionalidad de usar lo mismo para Orthographic y para Perspective. - Gizmos para predecir la vista de la camara cuando utilice un target (para las dos proyecciones )
  25. Hola chicos, espero estén muy bien, llevo un tiempo pensando en un proyecto de estrategia con tile movement y pathfinding, he logrado algunas cosas, pero no he podido entender el algoritmo de pathfinding (Y créanme, lo he intentado). Hay muchos recursos en ingles, en youtube esta quill18 que explica todo el sistema, pero mi ingles es bastante malo y me pierdo en algunas partes de la explicación. He llegado al foro con la esperanza de que alguien me explique o tenga un tutorial a la mano del algoritmo de dijkstra en español o algún otro algoritmo de búsqueda del camino mas corto, en el foro encontré algo parecido a lo que buscaba pero esta en ingles y de verdad que me cuesta entender la lógica de ese algoritmo. Cabe mencionar que utilizo C# y Unity. Algunos de los tutoriales que he leído he intentado: Tutoriales de Quill18 en youtube A* Pathfinding para Principiantes ALGORITMO DE BÚSQUEDA A* (PATHFINDING A*) – XNA Tutoriales de Sebastian Lague en youtube Cabe destacar que he seguido paso a paso los tutoriales de youtube, pero sigo sin entender la lógica, puedo mover objetos en el grid, pero no entiendo la lógica para poder agregar mecanicas de juego. Muchas gracias y un saludo, Nelbi Alvarado.
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...