A comunidade brasileira de desenvolvimento e programação de jogos.
Bem-vindo: Dom Mai 26, 2019 6:44 pm

Todos os horários são GMT - 3 horas




Criar novo tópico Responder  [ 2 mensagens ] 
Autor Mensagem
 Título: Conexão com banco de dados
MensagemEnviado: Qua Jan 30, 2019 9:59 am 
Offline
Membro novo

Registrado em: Qua Jan 30, 2019 9:39 am
Mensagens: 1
Bom dia galera, estou construindo um aplicativo Android e preciso de uma conexão com banco de dados online, na conexão o app vai exibir na cena duas Uitext que vai exibir o conteúdo do banco de dados, me falaram sobre webrequest e PHP mas não entendi como posso fazer a conexão, estou disposto a pagar se necessário por esse serviço, dou acesso ao banco de dados e você faz a conexão e o script C# e me envia. Interessados chama no PV


Voltar ao topo
 Perfil  
 
 Título: Re: Conexão com banco de dados
MensagemEnviado: Qui Fev 07, 2019 8:32 pm 
Offline
Membro intermediário
Avatar do usuário

Registrado em: Ter Mar 14, 2006 11:44 am
Mensagens: 190
já faz tempo que você perguntou e provavelmente alguém já te respondeu no privado, mas para enriquecer o fórum vou deixar minha resposta aqui, ok?

Um aplicativo feito no Unity conseguiria acessar diretamente o Banco de dados? Em teoria Sim. Mas precisaria do driver de conexão. Isso se complica ainda mais na hora de compilar para Android.

Portanto, A forma mais fácil de fazer aplicativo Android com Unity receber dados de um banco de dados é criando uma camada Web Service.

ANDROID <- WEB SERVICE <- DATABASE

Para te dar uma definição mais correta eu precisaria saber qual é o seu banco de dados
Supondo que seja MySql provavelmente sua hospedagem é linux e o melhor é você usar o PHP

Mas poderia ser qualquer linguagem web, ok?
a idéia aqui é criar uma página web que retorne os dados que você quer e ler ela no Unity.

O tipo de retorno pode ser qualquer um, mas optei por JSON pois além de ser um formato leve para troca de dados é também muito simples de ler.

Passos:
1 criar um script php que leia os dados e transformar em JSON (mesma coisa que um WebService Rest)
Código:
<?php
require_once("config.inc.php"); // arquivo onde estarao os dados de conexao com o banco de dados

$mySqlCon = mysqli_connect($DB_SERVER, $DB_SERVER_USERNAME, $DB_SERVER_PASSWORD, $DB_DATABASE);
if (mysqli_connect_error()) {
   die(json_encode(array("error" => "Connect Error " . mysqli_connect_error())));
}

// note que os alias dos campos devem todos ser com letras minusculas pra bater com a classe JSON
$select="select id,texto from TABELA where ID=" . $_GET["ID"] ;   // coloque a sua query aqui veja que tem um exemplo de parametro
$queryResult = mysqli_query($mySqlCon, $select);

if(!$queryResult){
   die(json_encode(array("error" => "Query Error " . mysqli_error($mySqlCon))));
}

$data_array=array();  // criando array
while ($row = mysqli_fetch_array($queryResult, MYSQL_ASSOC))
{
    array_push($data_array, $row); // inserindo registros no array
}

echo json_encode(array("result" => $data_array)); // aqui os dados estao sendo convertidos para JSON
?>


o resultado do JSON vai ser assim:
Código:
{"result":[{"id":"2","texto":"TEXTO2"}]}


2 criar classes no Unity para receber os objetos de dados
Código:
[System.Serializable]
public class TabelaModel {
    public int id;
    public string texto;
}


Código:
using System.Collections.Generic;

[System.Serializable]
public class TabelaModelCollection {
    public List<TabelaModel> result;
}


3 usar WWW para recuparar os dados no Unity
4 fazer parse do JSON para para os objetos
5 mostrar os dados recebidos
Código:
using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public class CarregarJson : MonoBehaviour {
    IEnumerator Start () {
        int id = 1; // exemplo de parametro

        // aqui vai a URL do seu site o caminho do php
        string url = "http://URLDOSEUSITE.com/caminho_do_arquivo_php?ID=" + id;

        // pega os dados
        string textoJson;
        using (WWW www = new WWW(url)) {
            yield return www;
            textoJson = www.text;
        }

        // converte o resultado do
        var resultados = JsonUtility.FromJson<TabelaModelCollection>(textoJson);

        // veja que os resultados são uma lista e voce pode facilmente usar um loop pra pegar todos eles
        string textoRecebido  = resultados.result[0].texto;

        // encontrando o componente "Text Script" do objeto "Uitext1" e atualizando com o texto recebido
        Text uitext = GameObject.Find("Uitext1").GetComponents<Text>()[0];
        uitext.text = textoRecebido;
   }
}



Obs.: Não tenho interesse em pegar o trabalho, mas espero ter ajudado.

_________________
Ruy R.S.F.
Ver Meu projeto


Voltar ao topo
 Perfil  
 
Exibir mensagens anteriores:  Ordenar por  
Criar novo tópico Responder  [ 2 mensagens ] 

Todos os horários são GMT - 3 horas


Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante


Enviar mensagens: Proibido
Responder mensagens: Proibido
Editar mensagens: Proibido
Excluir mensagens: Proibido
Enviar anexos: Proibido

Ir para:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por: Suporte phpBB