И так мой вопрос, как мне сделать атаку ИИ по триггеру.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerAttck : MonoBehaviour
{
public Animator anim;
public Transform attackpoints;
public float attackRange = 1f;
public LayerMask enemyLayers;
public int attackDamage = 40;
public float attackRate = 2f;
float nextAttackTime = 1f;
void Update()
{
if(Time.time >= nextAttackTime)
if (Input.GetKeyDown(KeyCode.E))
{
anim.SetTrigger("Attack");
nextAttackTime = Time.time + 2f / attackRate;
}
}
void Attack()
{
Collider2D[] hitEnemies = Physics2D.OverlapCircleAll(attackPoint.position, attackRange, enemyLayers);
foreach(Collider2D enemy in hitEnemies)
{
enemy.GetComponent<Enemy>().TakeDamage(attackDamage);
}
}
void OnDrawGizmosSelected()
{
if (attackPoint == null)
return;
Gizmos.DrawWireSphere(attackPoint.position, attackRange);
}
}
Вот скрипт самого игрока и его атака, по примеру этого скрипта можно сделать атаку ИИ? Я пробывал сделать новый скрипт, успеха не увидел. Есть скрипт который отнимает здоровье как вхожу в коллайдер ИИ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyDamage : MonoBehaviour
{
public int damage;
public PlayerHealth playerHealth;
private void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "Player")
{
playerHealth.TakeDamage(damage);
}
}
}
При столковении с коллайдером то здоровье отнимается, как поставить анимацию при ударе, и саму задержку удара когда идёт анимация.