Exemplo n.º 1
0
    public override bool Decide(BaseAIController controller)
    {
        Vector2 playerPosition = ElegarPuzzleQuestManager.Instance.PlayerTransform().position;
        Vector2 targetDir      = playerPosition - (Vector2)controller.eyesPos.position;
        float   angle          = Vector2.Angle(targetDir, controller.CharacterDirection());
        float   distance       = Vector2.Distance(playerPosition, controller.eyesPos.position);

        //if the target
        if (distance < controller.sightRange && angle < 45f)
        {
            int          layerMask = 1 << LayerMask.NameToLayer("Bushes");
            RaycastHit2D hit       = Physics2D.Raycast(controller.eyesPos.position, targetDir.normalized, distance, layerMask);
            if (hit.collider == null)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        else
        {
            return(false);
        }
    }
Exemplo n.º 2
0
    public override bool Decide(BaseAIController controller)
    {
        Vector2 playerPosition = TestManager.Instance.PlayerTransform().position;
        Vector2 targetDir      = playerPosition - (Vector2)controller.transform.position;
        float   angle          = Vector3.Angle(targetDir, controller.CharacterDirection());
        float   distance       = Vector2.Distance(playerPosition, controller.transform.position);

        //if the target
        if (distance < controller.sightRange && angle < 45f)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }