적한테 플레이어 감지 사거리랑 공격 사거리를 넣고


 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()가 꺼지던데 이거 왜이러는거임?