SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
animator duvidas
Formação de equipe (projeto já em andamento)
Unity Network, isServer, IsLocalPlayer..
Como executar uma animação atraves de um botão?
[TUTORIAL] Sistema de Oficina de Carros
[TUTORIAL] Unity 5 - Botão contínuo usando UI (Manter pressionado)
[PEDIDO] Script de Atirar
[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
[RESOLVIDO] Erro de Prefab quando realiza o Build de um projeto 3D
[____ADMINISTRAÇÃO____] Alterações IMPORTANTES no fórum.
Renderizar apenas algumas partes do mapa.
[RESOLVIDO] Água à noite?
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[PACOTE 2D GRATUITO] Pacote com 17 sprites de alta qualidade para baixar!
eixos X e Z nao rotaciona junto com o play
Erro na unity
Drop Shadows
Senha jogo schultz
Como fazer um sistema para conectar objetos?
Help!!! Criarção de Shader.
Projeto Estilo DD Tank
Duvidas com ADS
[TUTORIAL] Unity 5 - Sistema básico de jogo estilo ANGRY BIRDS
problema com giro na realidade aumentada
Sistema stealth
FreezeRotation e FreezePosition RigidBody Unity
[RESOLVIDO] Instanciar randômicamente prefab acima do terreno. Unity.
Gravidade para objetos selecionados
Procura-se Modelador para Mapas
Mudar ícone do jogo pelo script
[TUTORIAL] Plants VS Zombies na Unity!
A possibilidade de importar uma Biblioteca (dll) numa classe (MonoBehavior) da Unity?
IAP e ADS: plugins obsoletos
Raycast ponto a ponto
[Em Desenvolvimento] Battles of Worlds
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[RESOLVIDO] Linkar Script do inimigo quando o player entrar no collider dele
Ajuda sobre script para abir e fechar porta malas
site pra modelos 3d de armas
[RESOLVIDO] alguem que saiba fazer um jogo de fps pode ajuda?
Compilação do Game
[TUTORIAL] Escolher a quantos FPS (fixos) o seu jogo deverá rodar.
Snake Game - JavaScript + SVG
(Dúvida) Como acessar o sensor de movimento do Android?
[TUTORIAL] Gerenciamento de idiomas para o jogo ou app
[RESOLVIDO] Menu de um jogo com vários mapas
[TUTORIAL] Criando jogo de cartas com I.A (C# e Visual Studio) - Parte 01
USSecurity
Sawed off (Modelo 3D)
Direito autoral
Contar objetos clones
Dividir uma mesh em dois.
Procura se level designer ou diretor de arte ( REMUNERADO )
[TUTORIAL] Sistema COMPLETO de câmeras
[RESOLVIDO] Animaçao só funciona uma vez
[RESOLVIDO] Eu não consigo abrir o monodevelop
Novo Asset Sistema de Portas e Chaves
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
[RESOLVIDO] Como fazer a animação executar so uma vez
[JOGO] Mega BombermOn - Pokémon + Bomberman
Meu personagem na Realidade Aumentada fica tremendo
Carregar arquivos da biblioteca
Jogo de Tabuada
Rodas de tanque
ik nao funciona
DUVIDA EM SCRIPT
Cores nos materiais sem criar material
[Projeto] Line Battle
[TUTORIAL] Controle de personagem em primeira pessoa + pulo para android!
SkyBox Com qualidade Horrivel!
[RESOLVIDO] Bug/Erro da unity?
(ARQUIVO) Leia aqui como obter sucesso com seu jogo independente?
erro unity para android
MENU DE SELEÇÃO DE FASES
[PROJETO CONCLUÍDO] Defeat the Illuminatis
sombras para jogos mobile
Corcle (Mobile) - Um jogo simples com um nome estranho.
[TUTORIAL] Jogo da forca em C#
[RESOLVIDO] Dúvida com relação à "Escopo" e "Namespace" entre pastas na Unity
Problema ao rotacionar valores negativos.
Importe objeto do blender
Monodevelop
Equipe RedSkyGames Studio
Blender ao juntar algumas partes ficam mais escuro
new Vector3 (o que ele ta fazendo de errado??)(iniciante)
[TUTORIAL] Sistema de Controlador De Primeira Pessoa Com Som De Passos Aleatorios
[TUTORIAL] AI Enemy ( Jogos de terror )
[RESOLVIDO] Retornar um resultado de pagina PHP com texto formatado
[RESOLVIDO] Como Voltar o Player para o Início usando Trigger? C#
Unity - Deslizar Para Rotacionar o 'Personagem'
Como criar um poligono dinamicamente?
Instantiate
Em busca de um modelador 3D para plataforma educacional (Já ganhamos apoio de faculdades)
Armazenar as informações de um botão e duplica-lo
História que eu fiz na hora vaga.
Nao consigo loga no banco de dados no mobile usando Mysql e PHP
[TUTORIAL] Banco de dados || MySQL
IA de turret
Hoje à(s) 1:48 am
Ontem à(s) 8:02 pm
Ontem à(s) 6:31 pm
Ontem à(s) 6:19 pm
Sab Dez 08, 2018 11:28 pm
Sab Dez 08, 2018 9:42 pm
Sab Dez 08, 2018 3:20 pm
Sex Dez 07, 2018 6:04 pm
Sex Dez 07, 2018 12:11 pm
Sex Dez 07, 2018 5:03 am
Qui Dez 06, 2018 11:02 pm
Qui Dez 06, 2018 8:17 pm
Qui Dez 06, 2018 6:30 pm
Qui Dez 06, 2018 6:30 pm
Qui Dez 06, 2018 6:26 pm
Qui Dez 06, 2018 5:59 pm
Qui Dez 06, 2018 1:28 pm
Qua Dez 05, 2018 8:53 pm
Qua Dez 05, 2018 11:31 am
Ter Dez 04, 2018 6:57 pm
Ter Dez 04, 2018 3:24 pm
Ter Dez 04, 2018 1:37 pm
Ter Dez 04, 2018 8:02 am
Ter Dez 04, 2018 7:50 am
Ter Dez 04, 2018 4:10 am
Ter Dez 04, 2018 3:57 am
Ter Dez 04, 2018 3:39 am
Seg Dez 03, 2018 10:45 pm
Seg Dez 03, 2018 8:47 pm
Seg Dez 03, 2018 12:11 pm
Seg Dez 03, 2018 12:08 pm
Seg Dez 03, 2018 9:09 am
Seg Dez 03, 2018 9:00 am
Seg Dez 03, 2018 5:12 am
Seg Dez 03, 2018 1:42 am
Dom Dez 02, 2018 11:32 pm
Dom Dez 02, 2018 11:31 pm
Dom Dez 02, 2018 11:29 am
Dom Dez 02, 2018 1:51 am
Dom Dez 02, 2018 12:42 am
Sab Dez 01, 2018 9:24 pm
Sab Dez 01, 2018 9:11 pm
Sab Dez 01, 2018 1:37 pm
Sab Dez 01, 2018 1:22 pm
Sex Nov 30, 2018 4:10 pm
Sex Nov 30, 2018 10:28 am
Qui Nov 29, 2018 2:02 am
Qui Nov 29, 2018 1:11 am
Qui Nov 29, 2018 1:08 am
Qua Nov 28, 2018 3:03 pm
Qua Nov 28, 2018 3:00 pm
Qua Nov 28, 2018 1:29 pm
Qua Nov 28, 2018 4:09 am
Qua Nov 28, 2018 3:03 am
Ter Nov 27, 2018 8:49 pm
Ter Nov 27, 2018 5:50 pm
Ter Nov 27, 2018 1:46 pm
Seg Nov 26, 2018 8:29 pm
Seg Nov 26, 2018 2:56 pm
Seg Nov 26, 2018 2:55 pm
Seg Nov 26, 2018 12:43 pm
Seg Nov 26, 2018 9:33 am
Seg Nov 26, 2018 9:28 am
Dom Nov 25, 2018 11:06 pm
Dom Nov 25, 2018 5:08 pm
Dom Nov 25, 2018 9:21 am
Dom Nov 25, 2018 5:04 am
Sab Nov 24, 2018 8:41 pm
Sab Nov 24, 2018 4:52 pm
Sab Nov 24, 2018 4:03 pm
Sab Nov 24, 2018 2:33 pm
Sab Nov 24, 2018 8:49 am
Sab Nov 24, 2018 6:54 am
Sex Nov 23, 2018 4:28 pm
Sex Nov 23, 2018 1:58 pm
Sex Nov 23, 2018 1:29 pm
Sex Nov 23, 2018 12:49 pm
Sex Nov 23, 2018 12:42 pm
Qui Nov 22, 2018 7:21 pm
Qui Nov 22, 2018 12:59 pm
Qui Nov 22, 2018 10:53 am
Qui Nov 22, 2018 10:33 am
Qua Nov 21, 2018 7:41 pm
Qua Nov 21, 2018 11:09 am
Qua Nov 21, 2018 7:30 am
Ter Nov 20, 2018 10:58 pm
Ter Nov 20, 2018 4:07 pm
Ter Nov 20, 2018 2:37 pm
Ter Nov 20, 2018 12:58 pm
Seg Nov 19, 2018 11:11 pm
Seg Nov 19, 2018 7:47 pm
Seg Nov 19, 2018 7:42 pm
Seg Nov 19, 2018 2:46 pm
Seg Nov 19, 2018 1:48 pm
Seg Nov 19, 2018 11:40 am
Seg Nov 19, 2018 1:05 am
Dom Nov 18, 2018 11:35 pm
Dom Nov 18, 2018 11:20 pm
Dom Nov 18, 2018 11:18 pm
Tegh
BRGC
Callyde Jr
luis45
Jp.Game
ueslei16
gcs
dstaroski
McbDJ
MarcosSchultz
Isabela
gilgsjr
dstaroski
dstaroski
dstaroski
francisco barroso
yVIEIRA
NKKF
francisco barroso
henriquegames501
gilgsjr
Manawydan
Zack2
yanayana
MarcosSchultz
MarcosSchultz
MarcosSchultz
Emerson Rebouças
lesgoy
Opiz
NKKF
Tegh
Tegh
Zack2
MarcosSchultz
Dom3000
Dom3000
Luizdanhp
ffabim
gutozardy
diegopds
gilgsjr
Joab Artes Gráficas
SuperGamer
glauco
dstaroski
Valdir dos Santos
igorobm
igorobm
TioUV
TioUV
dstaroski
conceptfac
rZwr
Erivan
francisco barroso
tonCosta3939
Simplizãum S
ninjagamergabriel
Hube
Mago
natanael.olimpio
natanael.olimpio
MarcosSchultz
Isabela
diegopds
KAYKETHEO27
NKKF
MRX
tonCosta3939
Joab Artes Gráficas
Zack2
Joab Artes Gráficas
francisco barroso
Callyde Jr
dstaroski
Joab Artes Gráficas
Joab Artes Gráficas
clroberto2005
Insurgente
diegopds
diegopds
Tegh
Samuelostgamer
TioUV
NKKF
Simplizãum S
ArysonSantos
Jmspp
gonzaga
Magnatah
conceptfac
francisco barroso
rZwr
MayLeone
SuperGamer
sabbath
sabbath
MarcosSchultz

[TUTORIAL] Unity + PHP + Mysql (com PDO)

Ir em baixo

TUTORIAL [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por jasondavin em Ter Fev 27, 2018 11:14 am

Olá galera...

Hoje vim postar um tutorial bem direto que várias pessoas tem dúvidas: Como integrar Unity + PHP + Mysql ?
Vou explicar em passos, colocando o trecho de código e dando uma breve resumida da lógica do algoritmo. Também não vou fazer a parte de UI no Unity pois não é o foco.

Tecnologias utilizadas:
- Appserv 8.6.0 (Servidor PHP) ~> Link aqui
- PHP 7.0
- Mysql 5.7

Script do banco de dados Mysql

Código:
CREATE DATABASE minhadb;
USE minhadb;

CREATE TABLE usuarios
(
    _id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    _username VARCHAR(25) NOT NULL UNIQUE,
    _password VARCHAR(25) NOT NULL
);


Lado servidor PHP


1. Criando arquivo de configuração



Código:
<?php
// Configuracoes mysql
DEFINE("HOST","127.0.0.1");
DEFINE("USER","root");
DEFINE("PASSWORD","teste");
DEFINE("DATABASE","minhadb");
?>


Esse código define constantes contendo o HOST (IP), usuário, senha do banco de dados e a database que será utilizada na conexão Mysql.


2. Criando classe de Conexão PDO com um banco de dados (não necessariamente Mysql, pois estamos tratando de conexão PDO)



Código:
<?php
if(!class_exists("Connector"))
{
   class Connector
   {
      private $con = NULL;

      public function __construct()
      {
         $this->connect();
      }

      protected function connect()
      {
         try {
            $this->con = new PDO("mysql:host=".HOST.";dbname=".DATABASE, USER, PASSWORD);
         }
         catch(PDOException $e)
         {
            die($e->getMessage());
         }
         return $this->con;
      }

      public function execute($sql)
      {
         return $sql->execute();
      }

      public function prepare($stmt)
      {
         return $this->con->prepare($stmt);
      }

      public function fetch($stmt)
      {
         return $stmt->fetch(PDO::FETCH_ASSOC);
      }

      public function numRow($stmt)
      {
         return $stmt->rowCount();
      }

      public function close() {
         try {
            $this->con = NULL;
         }
         catch(PDOException $e) {
            exit($e->getMessage());
         }
      }
   }
}
?>


Essa classe contem os métodos básicos e principais para conexão com um banco de dados e manipulação de instruções sql. Não vou me explicar muito sobre essa classe, mas se quiser dar uma olhada em um projeto de TCC que eu fiz no meu curso ~> FastTCC


3. Criando arquivos de registro e login


login.php
Código:
<?php
// Importando arquivos de configuracao e classe de conexao
require "config.php";
require "Connector.class.php";

$conn = new Connector();

// Declaracao da variavel que ira conter a mensagem de erro
$result = array(
    "error" => true,
    "message" => ""
);

// Verificando se existe variaveis POST
if(isset($_POST["username"], $_POST["password"]))
{
    // Prepara instrucao SQL
    $stmt = $conn->prepare("SELECT * FROM usuarios WHERE _username = ? AND _password = ?");
    // Configura os parametros da instrucao
    $stmt->bindValue(1, $_POST["username"], PDO::PARAM_STR);
    $stmt->bindValue(2, $_POST["password"], PDO::PARAM_STR);

    // Executa instrucao
    if($stmt->execute())
    {
          // Verifica se houve resultados da instrucao
          if($conn->numRow($stmt) > 0)
          {
              // Guarda o resultado
              $row = $conn->fetch($stmt);
              $result["error"] = false;
              $result["message"] = "login successful.";
              $result["_userid"] = (int)$row["_id"];
              $result["_username"] = $row["_username"];
          }
          else {
              $result["message"] = "user incorrect.";
          }
    }
    else {
          $result["message"] = "error in server.";
    }
}
else
{
    $result["message"] = "fill all fields.";
}

// Decodifica a variavel contendo a mensagem de erro para JSON
$result_json = json_encode($result);
// Fecha conexao Mysql
$conn->close();
// Retorna dados para o client
exit($result_json);
?>

register.php
Código:
<?php
require "config.php";
require "Connector.class.php";

$conn = new Connector();

$result = array(
    "error" => true,
    "message" => ""
);

if(isset($_POST["username"], $_POST["password"]))
{
    $stmt = $conn->prepare("INSERT INTO usuarios SET _username = ?, _password = ?");
    /*
    * Tambem podendo ser:
    * "INSERT INTO usuarios (_username,_password) VALUES (?,?)"
    */
    $stmt->bindValue(1, $_POST["username"], PDO::PARAM_STR);
    $stmt->bindValue(2, $_POST["password"], PDO::PARAM_STR);

    if($stmt->execute())
    {
          $result["error"] = false;
          $result["message"] = "registered with success.";
    }
    else {
          $result["message"] = "not registered.";
    }
}
else
{
    $result["message"] = "fill all fields.";
}

$result_json = json_encode($result);
$conn->close();
exit($result_json);
?>

Os dois arquivos são bem parecidos, mudando apenas na instrução SQL e o tratamento das informações. Ambos importam o arquivo de configuração (citado no 1º passo) e a classe de conexão (citado no 2º passo). Verificam se existe as variáveis POST "username" e "password" para a construção da instrução SQL.
A instrução é executada e com as informações retornadas, é criada uma variável contendo o resultado da instrução e logo em seguida, é convertido em JSON e finalmente retornada para o cliente.

Lado cliente C#



Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Manager : MonoBehaviour {

    private void Start()
    {
        StartCoroutine("Register");
        StartCoroutine("Login");
    }

    IEnumerator Login()
    {
        // Criando formulario e configurando variaveis de parametro
        WWWForm form = new WWWForm();
        form.AddField("username", "jason"); // Parametro username
        form.AddField("password", "123");  // Parametro password

        // Chamando e enviando variaveis para uma URL
        WWW www = new WWW("http://127.0.0.1/tutorial/login.php", form);

        yield return www;

        // Verificando se nao houve erro na requisicao
        if(www.error == null)
        {
            // Cria um objeto do tipo Message contendo a resposta da requisicao
            Message jsonReturn = Message.decodify(www.text);
            // Mostra a mensagem de retorno
            Debug.Log(jsonReturn.message);
        }
    }

    IEnumerator Register()
    {
        WWWForm form = new WWWForm();
        form.AddField("username", "jason");
        form.AddField("password", "123");

        WWW www = new WWW("http://127.0.0.1/tutorial/register.php", form);

        yield return www;

        if (www.error == null)
        {
            Message jsonReturn = Message.decodify(www.text);
            Debug.Log(jsonReturn.message);
        }
    }
}

// Classe criada para converter a resposta da requisicao (string / JSON) em um objeto em C#
[System.Serializable]
public class Message
{
    public string message;
    public bool error;
    public int _userid;
    public string _username;

    public static Message decodify(string _text)
    {
        return JsonUtility.FromJson<Message>(_text);
    }
}



Esse arquivo C# possui duas Coroutines e uma classe serializada.

Classe Message


Essa classe é criada com objetivo de converter o retorno do PHP (que é uma string no formato JSON) para um objeto em PHP.
Obs: os atributos criados nesta classe deve conter exatamente o mesmo nome das propriedades criada no PHP.

Coroutine Login & Register


Cria um WWWForm contendo os parâmetros username e password que são utilizados para fazer a instrução SQL no arquivo PHP. Tal formulário é enviado como parâmetro na chamada da URL pelo objeto WWW.
Depois de instanciado, é feito uma verificação se não houve erro na requisição. Caso não houver, é criado um objeto do tipo Message que converte as informações retornadas do PHP para um objeto em C#.

Ponto importante:

Caso você queira acessar um banco de dados externo, você deverá mudar apenas na URL passada na instância do Objeto WWW. Por exemplo:
Código:
WWW www = new WWW("http://seusite.com/sua_pasta/arquivo.php", form);


Caso este tutorial não foi claro o bastante (pois não sou bom em explicar) poste sua dúvida que tentarei responde-la.
avatar
jasondavin
MembroAvançado

Masculino PONTOS : 508
REPUTAÇÃO : 16
Idade : 19
Áreas de atuação : Programação Web
GitHub : www.github.com/jasondavindev
Projeto: www.teamdev.pe.hu
Respeito as regras :

Ver perfil do usuário http://jasondavin.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por fabriciorsz34 em Ter Fev 27, 2018 12:33 pm

Wow
avatar
fabriciorsz34
Programador

PONTOS : 1163
REPUTAÇÃO : 24
Idade : 18
Áreas de atuação : C#,unity,cinema 4D, SketchUp

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por Dom3000 em Ter Fev 27, 2018 2:59 pm

muito bom parabens  Laughing
avatar
Dom3000
Programador

Masculino PONTOS : 2341
REPUTAÇÃO : 219
Idade : 23
Áreas de atuação : canal https://www.youtube.com/watch?v=yvmQEJUfbhQ
Page: https://www.facebook.com/BatlesofWorlds/

Respeito as regras :

Ver perfil do usuário https://www.instagram.com/battlesofworlds/?hl=pt-br

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por Cezar2016 em Ter Fev 27, 2018 5:40 pm

Parabéns pelo tutorial.

Cezar2016
Avançado
Avançado

Masculino PONTOS : 929
REPUTAÇÃO : 26
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por Dom3000 em Qua Fev 28, 2018 9:33 am

tenho uma duvida tipo eu tenho um game quase pronto, mas é single uso C# normal, para eu fazer ele ser multiplayer vou ter que mudar os scripts dele?
avatar
Dom3000
Programador

Masculino PONTOS : 2341
REPUTAÇÃO : 219
Idade : 23
Áreas de atuação : canal https://www.youtube.com/watch?v=yvmQEJUfbhQ
Page: https://www.facebook.com/BatlesofWorlds/

Respeito as regras :

Ver perfil do usuário https://www.instagram.com/battlesofworlds/?hl=pt-br

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por NKKF em Qua Fev 28, 2018 2:10 pm

Sim, com certeza você terá que mudar muita coisa. Caso contrário, poderá ter problemas. Lembre-se de sempre fazer um BKUP do jogo singleplayer e do progresso dele.  :D
avatar
NKKF
ProgramadorMaster

Masculino PONTOS : 2086
REPUTAÇÃO : 413
Idade : 14
Áreas de atuação : Error 404 Not Found.
Respeito as regras :

Ver perfil do usuário http://www.projetounity.esy.es

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por Andeton em Ter Mar 27, 2018 7:13 am

bom tutorial, fiz algo assim há alguns meses mais em vez de usar PDO usei mysqli, e em vez de json usei xml

Andeton
Iniciante
Iniciante

PONTOS : 647
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por amchacon em Ter Mar 27, 2018 9:02 pm

Muito bom. Eu mudaria apenas poucas coisas.

O campo password no banco, colocaria VARCHAR(255)
_password VARCHAR(255) NOT NULL
E adicionaria o campo '_status' como tinyint(1) para podermos rapidamente desativar um usuáro para que não possa mais logar.


E, no C#, antes de adicionar a senha no WWWForm, converteria para MD5. Assim, a senha já vai mais segura no pacote do POST.

amchacon
Iniciante
Iniciante

PONTOS : 987
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por Yan em Sab Maio 19, 2018 8:54 pm

Estou na duvida para configurar os  input fields.
Alguém pra explicar.

Yan
Iniciante
Iniciante

PONTOS : 778
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por Callyde Jr em Dom Maio 20, 2018 8:58 am

Se voce for usar input fields ele fica assim
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Manager : MonoBehaviour {
 
    public InputField InputUsername;//Adicione o input
    public InputField InputPassword;//Adicione o input
 

    private void Start()
    {
        StartCoroutine("Register");
        StartCoroutine("Login");
    }

    IEnumerator Login()
    {
        // Criando formulario e configurando variaveis de parametro
        WWWForm form = new WWWForm();
        form.AddField("username", InputUsername.text); // Parametro username
        form.AddField("password", InputPassword.text);   // Parametro password

        // Chamando e enviando variaveis para uma URL
        WWW www = new WWW("http://127.0.0.1/tutorial/login.php", form);

        yield return www;

        // Verificando se nao houve erro na requisicao
        if(www.error == null)
        {
            // Cria um objeto do tipo Message contendo a resposta da requisicao
            Message jsonReturn = Message.decodify(www.text);
            // Mostra a mensagem de retorno
            Debug.Log(jsonReturn.message);
        }
    }

    IEnumerator Register()
    {
        WWWForm form = new WWWForm();
        form.AddField("username", InputUsername.text);
        form.AddField("password", InputPassword.text);

        WWW www = new WWW("http://127.0.0.1/tutorial/register.php", form);

        yield return www;

        if (www.error == null)
        {
            Message jsonReturn = Message.decodify(www.text);
            Debug.Log(jsonReturn.message);
        }
    }
}

// Classe criada para converter a resposta da requisicao (string / JSON) em um objeto em C#
[System.Serializable]
public class Message
{
    public string message;
    public bool error;
    public int _userid;
    public string _username;

    public static Message decodify(string _text)
    {
        return JsonUtility.FromJson<Message>(_text);
    }
}
avatar
Callyde Jr
Programador

Masculino PONTOS : 2750
REPUTAÇÃO : 372
Idade : 39
Áreas de atuação : Iniciante em modelagem Blender,ScketSHUP
Progamador
Ideialista

Meu Canal
https://www.youtube.com/ch
Respeito as regras :

Ver perfil do usuário http://unnygames.000webhostapp.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por Yan em Dom Maio 20, 2018 3:36 pm

Ainda não foi muito claro.
Sou iniciante.
Não sei como dizer para apertar no botão e logar só se as informações estiverem corretas.
O mesmo para o botão registrar.
Facilitaria usando o OnClick.

Yan
Iniciante
Iniciante

PONTOS : 778
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por Callyde Jr em Dom Maio 20, 2018 6:53 pm

Bom ele colocou tudo no start
Bom eu fiz umas alteraçoes no script mais acho que fica mais facil de enteder
Código:
using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;

    public class Manager : MonoBehaviour {
   
        public InputField InputUsername;//Adicione o input
        public InputField InputPassword;//Adicione o input
        public Text textoRetorno = null;//UI textpara aparecer o retorno
        public GameObject canvasLogin,canvasRegister;//Os canvas para separar
      
        private void Start()
        {
            canvasLogin.SetActive(true);
            canvasRegister.SetActive(false);
        }
      
      public void Register()//ir para canvas registro
        {
            canvasRegister.SetActive(true);
            canvasLogin.SetActive(false);
      }
      public void ReturnToLogin()//ir para canvas login
        {
            canvasLogin.SetActive(true);
            canvasRegister.SetActive(false);
      }
      
      public void LogarUsuario(){//Funçao para fazer login
       if(InputUsername.text == "" || InputPassword.text == ""){//Para nao cadrastar usuariosvazios
      textoRetorno.text = "Nao pode existir campo vasios";
      print("Nao pode existir campo vasios");
      return;
   }   
    StartCoroutine("Login");
   }
   public void registrarNovoUsuario()//Funçao para cadrato
    {
        if(InputUsername.text == "" || InputPassword.text == "")
        {
            textoRetorno.text = "Prencha todos os campos!";
            print("Prencha todos os campos!");
            return;
        }
        StartCoroutine("Register");
    }   
      

        IEnumerator Login()
        {
            // Criando formulario e configurando variaveis de parametro
            WWWForm form = new WWWForm();
            form.AddField("username", InputUsername.text); // Parametro username
            form.AddField("password", InputPassword.text);  // Parametro password

            // Chamando e enviando variaveis para uma URL
            WWW www = new WWW("http://127.0.0.1/tutorial/login.php", form);

            yield return www;

            // Verificando se nao houve erro na requisicao
            if(www.error == null)
            {
                // Cria um objeto do tipo Message contendo a resposta da requisicao
                Message jsonReturn = Message.decodify(www.text);
                // Mostra a mensagem de retorno
                Debug.Log(jsonReturn.message);
            }
        }

        IEnumerator Register()
        {
            WWWForm form = new WWWForm();
            form.AddField("username", InputUsername.text);
            form.AddField("password", InputPassword.text);

            WWW www = new WWW("http://127.0.0.1/tutorial/register.php", form);

            yield return www;

            if (www.error == null)
            {
                Message jsonReturn = Message.decodify(www.text);
                Debug.Log(jsonReturn.message);
            }
        }
    }

    // Classe criada para converter a resposta da requisicao (string / JSON) em um objeto em C#
    [System.Serializable]
    public class Message
    {
        public string message;
        public bool error;
        public int _userid;
        public string _username;

        public static Message decodify(string _text)
        {
            return JsonUtility.FromJson<Message>(_text);
        }
    }
avatar
Callyde Jr
Programador

Masculino PONTOS : 2750
REPUTAÇÃO : 372
Idade : 39
Áreas de atuação : Iniciante em modelagem Blender,ScketSHUP
Progamador
Ideialista

Meu Canal
https://www.youtube.com/ch
Respeito as regras :

Ver perfil do usuário http://unnygames.000webhostapp.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por Yan em Seg Maio 21, 2018 4:55 pm

Exelente estou conseguindo conectar ao banco de dado efetuando registro e fazendo login.
Porém... Tentei fazer com que quando aperto para logar vá para a outra cena e não consegui.
Utilizei algo como.
Código:
IEnumerator CarregarCena () {
      yield return new WaitForSeconds (3);
      Application.LoadLevel ("Nome da cena");
   }


mas quando colocava o
StartCoroutine (CarregaScene());
no
IEnumerator Login()
passava sem precisar de senha.
Como disse sou iniciante, script não é muito comigo, mas eu tento. É muita coisa de uma vez, fazer modelos, texturas, animações, scripts... Desculpa o incomodo. E muito obrigado por me ajudar. Olhando aprendi métodos.

Yan
Iniciante
Iniciante

PONTOS : 778
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por Callyde Jr em Seg Maio 21, 2018 6:51 pm

Use
Código:
using UnityEngine.SceneManagement;

SceneManager.LoadScene ("Login");//Para chamar a scene
avatar
Callyde Jr
Programador

Masculino PONTOS : 2750
REPUTAÇÃO : 372
Idade : 39
Áreas de atuação : Iniciante em modelagem Blender,ScketSHUP
Progamador
Ideialista

Meu Canal
https://www.youtube.com/ch
Respeito as regras :

Ver perfil do usuário http://unnygames.000webhostapp.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity + PHP + Mysql (com PDO)

Mensagem por Callyde Jr em Ter Maio 22, 2018 5:56 am

Para verificar o retorno e aplicar a passagem de scene voce tem que ver o retorno do PHP Veja no exemplo abaixo.
Código:
if( mensage == "registered with success" ){
      
      yield return new WaitForSeconds (5);
              SceneManager.LoadScene ("Login");
avatar
Callyde Jr
Programador

Masculino PONTOS : 2750
REPUTAÇÃO : 372
Idade : 39
Áreas de atuação : Iniciante em modelagem Blender,ScketSHUP
Progamador
Ideialista

Meu Canal
https://www.youtube.com/ch
Respeito as regras :

Ver perfil do usuário http://unnygames.000webhostapp.com/

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum