Ataques del Jugador
Gizmos
private void OnDrawGizmos()
{
Gizmos.DrawLine(transform.position, ((Vector2)transform.position + 4f * Vector2.right * localScale.x));
}
private void OnDrawGizmos()
: Declaración de método para el callback OnDrawGizmos, indicando que Unity llamará automáticamente a este método cuando se dibujen Gizmos en la vista de Escena para fines de visualización;Gizmos.DrawLine(...)
: Este código dibuja una línea utilizando Gizmos. Recibe dos puntos como argumentos para definir la línea;transform.position
: Representa la posición actual del GameObject al que está adjunto este script;((Vector2)transform.position + 4f * Vector2.right * localScale.x)
: Calcula el segundo punto de la línea. Toma la posición actual del GameObject (transform.position
) y le suma un vector que se extiende 4 unidades hacia la derecha (4f * Vector2.right
).localScale.x
se utiliza para ajustar la longitud de la línea y la dirección según la escala del GameObject en el eje x.
En resumen, este código dibuja una línea en la vista de Escena desde la posición actual del GameObject
hasta un punto que está a 4 unidades hacia la derecha, con la longitud y dirección ajustadas según la escala del GameObject
en el eje x. Se utilizará para visualizar el alcance de cada ataque del jugador.
Script de Ataque
bool isAttacking;
float range;
[SerializeField] LayerMask enemyLayer;
private void Start()
{
isAttacking = false;
range = 0f;
}
public void StartAttacking(float attackRange)
{
isAttacking = true;
range = attackRange;
}
public void EndAttacking()
{
isAttacking = false;
range = 0f;
}
private void Update()
{
if (isAttacking)
{
RaycastHit2D rayCastHit = Physics2D.Raycast(transform.position, Vector2.right * transform.localScale.x, range, enemyLayer);
if (rayCastHit)
{
Debug.Log(rayCastHit.transform.name);
isAttacking = false;
}
}
}
Al iniciar el ataque, se llamará a la función StartAttacking
, que recibe como parámetro el alcance del ataque. Dado que cada ataque tiene un alcance diferente, comenzará el ataque y configurará el alcance correspondiente.
En la función Update
, cuando el jugador está atacando, se creará un RayCast que parte desde el jugador, en la dirección hacia la que está mirando, con una distancia igual al alcance del ataque y filtrando únicamente el enemyLayer
.
Si golpeamos a un enemigo, por ahora mostraremos su nombre en la consola, pero en el futuro, recuperaremos su salud y lo atacaremos.
Además, tenemos una función EndAttacking
, que concluirá nuestro ataque.
Eventos de animación
Añadir eventos
En la ventana de Animación de Unity, puedes añadir eventos a los clips de animación en fotogramas específicos. Haz clic derecho sobre la curva de animación o el fotograma clave para agregar un evento de animación y especificar la función y los parámetros opcionales.
Definición de funciones
Las funciones que serán llamadas por los Eventos de Animación deben ser públicas. El sistema de Eventos de Animación de Unity admite parámetros opcionales de tipo float y string, invocando automáticamente las funciones especificadas durante la reproducción de la animación para sincronizar las animaciones con la lógica del juego y activar diversas acciones.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 3.33
Ataques del Jugador
Desliza para mostrar el menú
Gizmos
private void OnDrawGizmos()
{
Gizmos.DrawLine(transform.position, ((Vector2)transform.position + 4f * Vector2.right * localScale.x));
}
private void OnDrawGizmos()
: Declaración de método para el callback OnDrawGizmos, indicando que Unity llamará automáticamente a este método cuando se dibujen Gizmos en la vista de Escena para fines de visualización;Gizmos.DrawLine(...)
: Este código dibuja una línea utilizando Gizmos. Recibe dos puntos como argumentos para definir la línea;transform.position
: Representa la posición actual del GameObject al que está adjunto este script;((Vector2)transform.position + 4f * Vector2.right * localScale.x)
: Calcula el segundo punto de la línea. Toma la posición actual del GameObject (transform.position
) y le suma un vector que se extiende 4 unidades hacia la derecha (4f * Vector2.right
).localScale.x
se utiliza para ajustar la longitud de la línea y la dirección según la escala del GameObject en el eje x.
En resumen, este código dibuja una línea en la vista de Escena desde la posición actual del GameObject
hasta un punto que está a 4 unidades hacia la derecha, con la longitud y dirección ajustadas según la escala del GameObject
en el eje x. Se utilizará para visualizar el alcance de cada ataque del jugador.
Script de Ataque
bool isAttacking;
float range;
[SerializeField] LayerMask enemyLayer;
private void Start()
{
isAttacking = false;
range = 0f;
}
public void StartAttacking(float attackRange)
{
isAttacking = true;
range = attackRange;
}
public void EndAttacking()
{
isAttacking = false;
range = 0f;
}
private void Update()
{
if (isAttacking)
{
RaycastHit2D rayCastHit = Physics2D.Raycast(transform.position, Vector2.right * transform.localScale.x, range, enemyLayer);
if (rayCastHit)
{
Debug.Log(rayCastHit.transform.name);
isAttacking = false;
}
}
}
Al iniciar el ataque, se llamará a la función StartAttacking
, que recibe como parámetro el alcance del ataque. Dado que cada ataque tiene un alcance diferente, comenzará el ataque y configurará el alcance correspondiente.
En la función Update
, cuando el jugador está atacando, se creará un RayCast que parte desde el jugador, en la dirección hacia la que está mirando, con una distancia igual al alcance del ataque y filtrando únicamente el enemyLayer
.
Si golpeamos a un enemigo, por ahora mostraremos su nombre en la consola, pero en el futuro, recuperaremos su salud y lo atacaremos.
Además, tenemos una función EndAttacking
, que concluirá nuestro ataque.
Eventos de animación
Añadir eventos
En la ventana de Animación de Unity, puedes añadir eventos a los clips de animación en fotogramas específicos. Haz clic derecho sobre la curva de animación o el fotograma clave para agregar un evento de animación y especificar la función y los parámetros opcionales.
Definición de funciones
Las funciones que serán llamadas por los Eventos de Animación deben ser públicas. El sistema de Eventos de Animación de Unity admite parámetros opcionales de tipo float y string, invocando automáticamente las funciones especificadas durante la reproducción de la animación para sincronizar las animaciones con la lógica del juego y activar diversas acciones.
¡Gracias por tus comentarios!