My script is not working help!

My script is not working help!

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Otimizacao : MonoBehaviour {
    public string[] tags;
    private List<GameObject> _OBJETOS = new List<GameObject>();
    private GameObject JOGADOR;
    private float DistanciaDoPlayer;
    public float DistanciaMaxima = 40;
    void Start (){
        JOGADOR = GameObject.FindWithTag("Player");
        for (int x = 0; x < tags.Length; x++) {
            _OBJETOS.AddRange (GameObject.FindGameObjectsWithTag (tags [x]));
        }
    }
    void Update (){
        for(int i = 0; i <_OBJETOS.Count; i++){
            DistanciaDoPlayer = Vector3.Distance(JOGADOR.transform.position,_OBJETOS[i].transform.position);
            if(DistanciaDoPlayer >= DistanciaMaxima){
                _OBJETOS[i].SetActive (false);
            }else{
                _OBJETOS[i].SetActive (true);
            }
        }
    }
}

When you ask for help, be sure to describe what your script is supposed to do, and what it is doing instead. Is it giving you a compile error? Is it doing nothing? Is it doing something, but the wrong thing? What’s it supposed to do?

We have no idea how to help you without this information.

not erros

It does not have errors it just does not work

Are you sure the objects you’re testing for all have the correct tags, and that they’re exactly the same (case sensitive) as the tags in “tags”?

Yes I have everything is perfect, no errors, no difference in tags. I still do not understand why it is not working. If you do not leave nothing there and if possible you can help me in this other topic: How do I create a passenger-like script on the bus? - Unity Engine - Unity Discussions