BehknQux
Decapat
- Katılım
- 16 Mart 2023
- Mesajlar
- 26
Daha fazla
- Cinsiyet
- Erkek
Merhaba. Sıkıntı hasAttacked değişkeninin direkt aktif olması işleri bozuyor . Kendimce kaçak bir çözüm ekledim ama daha iyi bir yolu var mıdır?
Kod:
using System.Collections;
using System.Collections.Generic;
using System.Net.Mail;
using System.Xml.Serialization;
using UnityEngine;
public class AutoAttack : MonoBehaviour
{
Animator anim;
public Transform attackPoint;
private float attackRange = .75f;
private float attackCooldown = 0.5f;
private bool hasAttacked;
public LayerMask enemyLayers;
void Start()
{
anim = GetComponent<Animator>();
}
void Update()
{
Attack();
AutoAttackAnimations();
}
private void Attack()
{
if (Input.GetButtonDown("Fire1") && !hasAttacked)
{
Collider2D[] hitEnemies = Physics2D.OverlapCircleAll(attackPoint.position, attackRange, enemyLayers);
StartCoroutine(SetAttackCooldown());
foreach (Collider2D enemy in hitEnemies)
{
print("Enemy Hit: " + enemy.name);
}
}
}
private void AutoAttackAnimations()
{
if (Input.GetButtonDown("Fire1") && !hasAttacked)
{
anim.SetInteger("state", 2);
}
}
private IEnumerator SetAttackCooldown()
{
yield return new WaitForSeconds(0.000000000000000000000001f);
hasAttacked = true;
yield return new WaitForSeconds(attackCooldown);
hasAttacked = false;
}
}