У меня есть персонаж, который умеет двигаться и прыгать, проблемы возникли, когда я попытался научить его атаковать. Я прикрепил к персонажу объект с Circle.Collider2D и пробовал сделать так, чтобы персонаж атаковал при нажатии ЛКМ и наносил урон если в области объекта есть враг.
Скрипт персонажа:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerHit : MonoBehaviour
{
public bool canHit;
public static int damage;
public EnemyHp enemyhp;
void Start()
{
damage = 10;
}
private void Awake()
{
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
if (canHit)
{
enemyhp.takeDamage(damage);
}
}
}
private void OnTriggerEnter2D(Collider2D collision)
{
canHit = true;
}
private void OnTriggerExit2D(Collider2D collision)
{
canHit = false;
}
}
Скрипт объекта на персонаже:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RotateCircle : MonoBehaviour
{
public CircleCollider2D circle;
void Start()
{
}
private void Awake()
{
circle.GetComponentInChildren<CircleCollider2D>();
}
void Update()
{
if (Input.GetKey(KeyCode.A)){
circle.transform.rotation = Quaternion.Euler(0, 180, 0);
}
if (Input.GetKey(KeyCode.D))
{
circle.transform.rotation = Quaternion.Euler(0, 0, 0);
}
}
}
Скрипт врага:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyHp : MonoBehaviour
{
public int maxHealth = 100;
public int curHealth = 100;
public BoxCollider2D box;
void Start()
{
}
private void Awake()
{
box.GetComponent<BoxCollider2D>();
}
void Update()
{
}
public void takeDamage(int damage)
{
curHealth -= damage;
if (curHealth <= 0)
{
curHealth = 0;
Debug.Log("Dead");
Destroy(gameObject);
}
Debug.Log(curHealth);
}
}
Мне необходимо, чтобы при нажатии ЛКМ персонаж атаковал всех врагов в радиусе Circle.Collider2D. Приведите пример кода, либо объясните, что мне нужно сделать, чтобы реализовать задуманное.
Как я понимаю, все мои трудности идут из-за плохого понимания c#. Подскажите, пожалуйста, книги/курсы для людей со знанием этого языка на уровне "чуть выше синтаксиса".