En los juegos de plataformas en 2D, hay, por supuesto, muchas plataformas para que el personaje del jugador se pare. Una de las características más comunes de una plataforma es la capacidad de permitir que los jugadores salten desde abajo. E implementar esto en Unity también es bastante fácil.
Con el componente Platform Effector 2D Unity, cualquier plataforma 2D y cualquier objeto 2D con un colisionador 2D se puede hacer fácilmente para permitir que otros objetos que vienen de una dirección determinada pasen por alto la verificación de colisión y los atraviesen, lo que resulta en un paso de un solo sentido. .
El componente Platform Effector 2D también se puede utilizar para otros géneros de juegos. Muchos juegos de rompecabezas basados en la física también utilizan efectos de puerta de enlace unidireccional, de una forma u otra.
Tabla de contenido
Cómo usar Platform Effector 2D para hacer plataformas unidireccionales
El componente Platform Effector 2D es bastante fácil de usar y no requiere muchas configuraciones para que funcione.
Para usar Platform Effector 2D, todo lo que tiene que hacer es agregarlo a un objeto de juego como componente. Asegúrate de que el objeto del juego tenga un Colisionador 2D y que el efecto Usar por en el Colisionador esté habilitado.
Repasemos esto paso a paso.
Una escena de muestra
Usaré esta escena simple como guía. Es una escena 2D con un personaje jugador y un guión de movimiento simple. El rectángulo negro es un objeto de cubo 2D con un componente Box Collider 2D adjunto. Actuará como la plataforma flotante que convertiremos en una plataforma unidireccional.
Los activos de Sprite usados en este proyecto de ejemplo son del paquete Unity llamado Sunny Land. Es gratis en la tienda de activos de Unity.
Aún no hay Platform Effector 2D
Como puede ver arriba, cuando el personaje del jugador intenta saltar desde debajo de la plataforma, choca con la plataforma y cae.
Ahora, intentemos agregar el componente Platform Effector 2D al objeto del juego de plataforma.
Agregar componente 2D de Platform Effector
Busque Platform Effector 2D en el menú Agregar componente en el objeto del juego de plataforma.
El componente 2D de Platform Effector
Una vez agregado, notará que hay una advertencia que le indica que habilite «Usado por Effector» en al menos un colisionador 2D.
Habilitar utilizado por Effector
Continúe y habilite Usado por efector en el colisionador 2D dentro del mismo objeto del juego en el que desea que el efector aplique el efecto unidireccional. En esta guía, el objeto del juego de plataforma tiene un componente Box Collider 2D, por lo que habilitaré la opción allí.
Si tiene más de un colisionador en el mismo objeto del juego, puede habilitar Usado por Effector en tantos como desee y todos se verán afectados por Platform Effector 2D. Solo asegúrese de habilitar «Usar agrupación unidireccional» en el efector si desea que los colisionadores actúen como un único colisionador combinado.
El arco de superficie
Una vez que esté habilitado Usado por Effector, verá un semicírculo en el objeto del juego de plataforma en la vista de escena. Este semicírculo se llama arco de superficie.
Nota: si no puede ver el arco de superficie. Vuelva al componente del efector y asegúrese de que esté habilitado «Usar unidireccional» en la sección Unidireccional.
El arco de superficie define dónde debe estar la «tierra sólida». En otras palabras, si un objeto intenta atravesar la plataforma desde la dirección en la que está presente el arco de superficie, no podrá pasar y chocará con la plataforma.
De forma predeterminada, el arco está configurado para ser el arco de ángulo de 180 grados de la mitad superior. Esto significa que los objetos pueden pasar a través de la plataforma cuando vienen desde abajo y permanecerán por encima de la plataforma.
Este es el comportamiento que queremos, así que no hay necesidad de cambiar nada.
Una plataforma con efector One Way activado
Intenta jugar el juego en el modo Jugar. El jugador ahora puede saltar a la plataforma desde abajo y permanecer en la plataforma sin caerse.
Permítanme explicar algunos de los parámetros en el componente Platform Effector 2D.
- Máscara de colisionador: hace que el efector solo afecte a los objetos dentro de las capas seleccionadas. (Capa física, no la capa de clasificación).
- Compensación de rotación: aumente o disminuya este valor para rotar los arcos.
- Utilizar agrupación unidireccional: agrupa los colisionadores utilizados por el efector y los trata como un colisionador.
- Lados: esta sección básicamente le permite activar/desactivar el valor de fricción y el valor de rebote de los materiales asignados al objeto del juego cuando otros objetos chocan con este objeto del juego desde el ángulo especificado en el campo Arco lateral.
¡Eso es! Es fácil. Intente jugar con los parámetros para tener una mejor idea de ello. Por ejemplo, puede disminuir el arco de la superficie si el personaje del jugador se bloquea al intentar ingresar a la plataforma desde la parte inferior izquierda o inferior derecha de la plataforma.
Una puerta de un solo sentido usando el efector
También puedes usar Platform Effector 2D para hacer una puerta de un solo sentido girando el arco de la superficie para mirar hacia el lado en el que no quieres que entren los jugadores. Gire el arco de superficie configurando el valor de Desplazamiento rotacional.
El jugador no puede volver
Puedes hacer mucho más con Platform Effector 2D. ¡Adelante y explora!
Cómo usar Platform Effector 2D en un mapa de mosaicos
Usar Platform Effector 2D en un mapa de mosaicos también es simple. El proceso es el mismo que cuando agrega el componente efector a un objeto de juego normal, pero esta vez agregará el efector a un objeto de mapa de mosaico.
Una cosa importante que debe recordar al usar Platform Effector 2D en un mapa de mosaicos es que el efector afectará TODO dentro de ese mapa de mosaicos. Es mejor crear un objeto de mapa de mosaico separado solo para plataformas de un solo sentido para que otras cosas como el suelo o las paredes no se vean afectadas.
Cree múltiples mapas de mosaicos si desea comportamientos diferentes para cada uno de ellos. En este ejemplo, tengo un mapa de mosaicos para el suelo que no debería ser unidireccional, y tengo otro mapa de mosaicos para las plataformas a las que agregaremos el efector.
Un mosaico de plataformas sin el efector
Las dos plataformas flotantes en la imagen de arriba están en un nuevo mapa de mosaicos.
Platform Effector 2D agregado al objeto de mapa de mosaico
Ahora, todo lo que tiene que hacer es agregar el componente Platform Effector 2D al objeto de mapa de mosaico que tiene las plataformas flotantes. Asegúrese de que el efector usado por en el colisionador compuesto 2D esté habilitado.
Un mapa de mosaicos con Platform Effector 2D habilitado
¡Eso es! Ajuste el arco de la superficie si es necesario.
Nuevamente, esto afectará todo en el mapa de mosaicos, por lo que tendrá que crear múltiples mapas de mosaicos si desea comportamientos diferentes para otras cosas.
Cómo controlar Platform Effector 2D a través de secuencias de comandos C#
El componente Platform Effector 2D también se puede controlar a través de un script C# para que pueda hacer algo como hacer que los jugadores recolecten un elemento determinado antes de que puedan ingresar a la habitación contigua.
Code language: C# (cs)
private PlatformEffector2D platformEffector2D; private void Start() { platformEffector2D = GetComponent<PlatformEffector2D>(); }
Use la clase PlatformEffector2D de Unity para controlar el efector a través de un script C#.
Code language: HTML, XML (xml)
using UnityEngine; public class SecretDoorController : MonoBehaviour { private PlatformEffector2D platformEffector2D; private void Start() { platformEffector2D = GetComponent<PlatformEffector2D>(); platformEffector2D.useOneWay = false; } public void UnlockTheSecretPassage() { platformEffector2D.useOneWay = true; } }
Puede hacer algo como: Deshabilitar Use One Way y solo habilitarlo cuando se cumpla una condición. Cuando Use One Way está deshabilitado, el objeto del juego se comportará como un objeto normal con un colisionador.
Para conocer otras propiedades de PlatformEffector2D, diríjase a la página de documentación oficial de Unity para obtener más información sobre la clase.
Eso fue fácil, ¿verdad?
Realmente, todo lo que tiene que hacer para crear una plataforma unidireccional es agregar el componente Platform Effector 2D a un objeto de juego con un colisionador. Y no olvide habilitar Usado por efector en los colisionadores que desea utilizar el efector.
Esta es la forma más rápida y fácil de implementar el comportamiento de la plataforma unidireccional, ¡y también con menos codificación! A menos que desee comportamientos diferentes, utilizará este efector la mayor parte del tiempo.
Espero que hayas aprendido algo nuevo hoy. Deja un comentario si lo disfrutas. Haz preguntas si estás atascado en algo. Haré todo lo posible para responder siempre que pueda.