DUVIDA DO SISTEMA DE CORPO A CORPO
2 participantes
Página 1 de 1
DUVIDA DO SISTEMA DE CORPO A CORPO
EU vir um vídeo de um cara que faz um sistema de corpo a corpo,mas eu não conseguiu muda a posição do ataque da posição quanto eu ando.Por favor me ajuda
Esse vídeo embaixo mostra o que ta acontecendo.
Esse é o script.
Esse vídeo embaixo mostra o que ta acontecendo.
Esse é o script.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;
public class movimentoPlayer : MonoBehaviour
{
public float cooldown = 2;
public float timeIsjump = 0;
public float cooldownAttack = 2f;
public float currentTimer = 0f;
public float speed;
public float jump;
private bool isjump;
private Rigidbody2D rig;
private SpriteRenderer sprite;
private Animator anim;
public Transform attackPoint;
public float attackRange = 0.5f;
public int attackDamege = 40;
public LayerMask enemyLayer;
private AudioSource aundioP;
public AudioSource soundjump;
void Start()
{
rig = GetComponent<Rigidbody2D>();
sprite = GetComponent<SpriteRenderer>();
anim = GetComponent<Animator>();
aundioP = GetComponent<AudioSource>();
}
// Update is called once per frame
void Update()
{
if (timeIsjump > 0)
{
timeIsjump -= Time.deltaTime;
}
if(timeIsjump < 0)
{
timeIsjump = 0;
}
if(Time.time >= currentTimer)
{
if (Input.GetKeyDown(KeyCode.J) & isjump)
{
attack();
currentTimer = Time.time + 1f / cooldownAttack;
}
}
if (Input.GetKey("d"))
{
rig.velocity = new Vector2(speed, rig.velocity.y);
if (isjump)
{
anim.SetBool("isAndando", true);
}
sprite.flipX = false;
}else if (Input.GetKey("a"))
{
rig.velocity = new Vector2(-speed, rig.velocity.y);
if (isjump)
{
anim.SetBool("isAndando", true);
}
sprite.flipX = true;
}
else
{
if(isjump)
rig.velocity = new Vector2(0, rig.velocity.y);
anim.SetBool("isAndando", false);
}
if (Input.GetKeyDown(KeyCode.Space) & isjump && timeIsjump == 0)
{
timeIsjump = cooldown;
rig.AddForce(Vector2.up * jump, ForceMode2D.Impulse);
anim.SetBool("isjump", true);
}
}
void attack()
{
Collider2D[] hitEnemies = Physics2D.OverlapCircleAll(attackPoint.position, attackRange, enemyLayer);
for(int i = 0; i < hitEnemies.Length; i++)
{
hitEnemies[i].GetComponent<vidaInimigo>().TakeDamage(attackDamege);
}
anim.SetTrigger("attack");
}
void OnDrawGizmosSelected()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(attackPoint.position, attackRange);
}
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("ground"))
{
isjump = true;
anim.SetBool("isjump", false);
}
}
private void OnCollisionExit2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("ground"))
{
isjump = false;
anim.SetBool("isjump", true);
}
}
public void aundiopx()
{
aundioP.Play();
}
public void JUMP()
{
soundjump.Play();
}
}
eloigame- Iniciante
- PONTOS : 1585
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» Erro sistema de combate corpo a corpo
» Sistema de melee / ataque corpo a corpo.
» Sistema de missão [Duvida]
» [DÚVIDA] Movimentação e corpo na câmera
» [Dúvida] Como fazer um corpo rígido receber velocidade em direção ao mouse.
» Sistema de melee / ataque corpo a corpo.
» Sistema de missão [Duvida]
» [DÚVIDA] Movimentação e corpo na câmera
» [Dúvida] Como fazer um corpo rígido receber velocidade em direção ao mouse.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos