protected override bool Evaluate(AIBehaviors fsm)
        {
            Transform[] players                 = objectFinder.GetTransforms();
            Vector3     fsmPosition             = fsm.GetSightPosition(fsm.sightTransform);
            float       maximumSqrCheckDistance = maximumCheckDistance * maximumCheckDistance;

            for (int i = 0; i < players.Length; i++)
            {
                Vector3 playerPosition = players[i].position;
                float   sqrDistance    = (fsmPosition - playerPosition).sqrMagnitude;

                if (sqrDistance < maximumSqrCheckDistance)
                {
                    Vector3 differenceVector = playerPosition - fsmPosition;
                    Vector3 direction        = differenceVector.normalized;
                    float   distance         = differenceVector.magnitude;

                    Debug.DrawRay(fsmPosition, direction * distance);
                    if (!Physics.Raycast(fsmPosition, direction, distance, fsm.raycastLayers))
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }