적한테 플레이어 감지 사거리랑 공격 사거리를 넣고
void PlayerInSight()
{
Debug.Log(" 감지");
Debug.DrawRay(transform.position, transform.right * detectionRange, Color.green);
RaycastHit2D hit = Physics2D.Raycast(transform.position, transform.right, detectionRange
, ~enemyLayer);
if (hit)
{
Debug.Log(hit.collider.gameObject);
PlayerController player = hit.transform.GetComponent<PlayerController>();
if (player != null)
{
Movement();
}
}
}
void PlayerInAttackSight()
{
Debug.DrawRay(transform.position, transform.right * attackRange, Color.red);
RaycastHit2D hit = Physics2D.Raycast(transform.position, transform.right, attackRange
, ~enemyLayer);
if (hit)
{
PlayerController player = hit.transform.GetComponent<PlayerController>();
if (player != null)
{
attack = true;
StartCoroutine(Attack());
}
else
{
attack = false;
}
}
이렇게 코드 짜고
void Update()
{
if (!attack)
{
PlayerInSight();
}
PlayerInAttackSight();
}
이렇게 해서 플레이어가 감지범위 들어오면 공격 사거리 될때까지 이동해서 공격하는 식으로 했는데 공격범위 안에 들어오고 다시 나가면 attack이 false여도 PlayerInSight()가 꺼지던데 이거 왜이러는거임?
댓글 0