void TraverseNodeImportar( NodoUI nodo, XmlNode XmlNode)
    {
      //essa função tem um erro, por algum motivo um nodo adiciona dois links ao importar arvores maiores que 4
        //tentando criar uma estrutura pra arvore :S
        NodoUI novoNodo = AdicionarNodo();
        novoNodo.AdicionarPorta();
        if (nodo != null)
        {
           
            AdicionarLink(nodo.PortaSaida(), novoNodo.PortaEntrada());
        }
        else
            Debug.Log("nodo null");
        novoNodo.name = "Nodo" + novoNodo.id.ToString();
        novoNodo.nome = XmlNode.Attributes["Nome"].Value;
     //   Debug.Log("adicionando nodo" + novoNodo.nome);
        novoNodo.IniciarNome();

        for (int i = 0; i < XmlNode.ChildNodes.Count; i++)
        {
            XmlNode ChildXml=XmlNode.ChildNodes[i];

            if (ChildXml.Name=="Propriedades")
            {
                foreach( XmlNode prop in ChildXml.ChildNodes)
                {
                    var propUI = novoNodo.AdicionarPropriedade();
                    propUI.gameObject.SetActive(true);
                    propUI.nome = prop.Attributes["Nome"].Value;
                    propUI.Valor = prop.Attributes["Valor"].Value;
                    propUI.SetarNome();
                    propUI.SetarValor();
                    propUI.gameObject.SetActive(false);
                   // Debug.Log("adicionando " + propUI.nome);
                }
            }
            if (ChildXml.Name == "PortaSaida")
            {
               // Debug.Log("chegou no nodo de saida");
                if(ChildXml.ChildNodes.Count>0)
                {
                  //  Debug.Log("adicionando porta numero de filhos:" + ChildXml.ChildNodes.Count);
                   // novoNodo.AdicionarPorta();
                }
                foreach (XmlNode xmlNodeChild in ChildXml.ChildNodes)
                {              
 
                    TraverseNodeImportar(novoNodo, xmlNodeChild);
                }
            }
      
        }

    }