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 Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Só o networkIndetity é o suficiente para o que eu quero fazer? Como ele funciona?
Site para Baixar Character em 3D
Alguns modelos low poly
O que acham dos meus modelos? (Prédios)
QUER UMA PEQUENA GAMEPLAY DO MEU GAME?
Como faz para colocar som nos passos do personagem?
Cut Scene com video player
[Pack de Modelos 3d] Kit Pau Pra Toda Obra [Low Poly]
ESSE EO MEU JOGO QUE EU ESTOU DESENVOLVENDO (VERSAO BETA)
Canvas UI
Site Profissional Completo Gratis para Jogos
[Dúvida] tiro
Sombra preta
Formação de Equipe Battle of Worlds
Transformar velocidade em forca
[DUVIDA] Shader
[RESOLVIDO] Mais scripts ou mais linhas de codigo????
Ponto na tela
Photon Duvida
(RESOLVIDO)Ajuda na animação do Mixamo
[Duvida] Como dar play e pausar uma animacao??
Como criar um timer?
Personagem "Batendo" no limite da camera em 2D
Sistema de Sensibilidade Do Mouse X e Y!
Sistema multiplayer por Salas
Vender ideia de jogo para desenvolvedora
FORMAÇÃO DE EQUIPE PARA JOGO MULTIPLAYER DE SOBREVIVENCIA
eu preciso de um script de contagem para o me jogo alguem pode me ajudar?
Unity Congelando
Como pode ser feito um HUD?
Script sem erro, mas não funciona
Google VR
Ajuda sobre melhorar a Fricção no Wheel Collider
sombrancelha do mixamo
[RESOLVIDO]Oque significa "?"
Dúvida sobre jogo android...
OBJETO INSTANCIANDO EM POSIÇÃO ERRADA
[Duvida] NavMeshAgente se movendo muito rapido!
Alguma alternativa para os JOINT do unity
Projeto B
Script + Direção
Alguem quer ajudar em meu jogo???
[Resolvido] Como chamar uma void ou função, através de um botão.
[RESOLVIDO] Como subir escadas
For lista
[RESOLVIDO] Sistema de recarregamento Precário.
[Duvida] Com NavMesh;
[Duvida] Com LookAt
[Resolvido]Objeto não está sendo instanciado
[DUVIDA] - Pontuação e fim de jogo
Network Manager opção sumiu
PROBLEMA TEXTURA E TELA GAME
[Resolvido] Colisores nao colidem!!
Como colocar dano no inimigo? e vida no player?
O que falta??
QUEM AI TA DISPOSTO A DESENVOLVER UM GAME EM EQUIPE??
[TUTORIAL] FPSController nadar e mergulhar, junto com efeito submerso
Receber tiro(animação)
Limite de tela
[Resolvido]COMO CONSULTAR O PAINEL DE PREFERENÇIAS DA UNITY?
Alguém poderia me dizer o que estou fazendo de errado nesses scripts? (Vuforia SDK).
[RESOLVIDO] Como movimentar um objeto de um lado para o outro
Movimento de rotação entre dois objetos
[Duvida] script para criar um servidor automaticamente
Alguem Me Ajuda A Corrigir Um Erro Em Uma Conexão Com mysql
Como faz para pular?
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Atingir inimigo e ele se destruir
Pegar coisas do chao
Checkpoint e Respawn
Teste jogo em andamento "Infiltraded"
[Resolvido]Como achar um objeto por componente?
Coletar
[TUTORIAL] Banco de Dados || PHP
[Resolvido] Como fazer o objeto colidir uma vez e tão ficar tremendo?
Problema com rotação de objeto
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
como fazer sombras pixelizadas
[Dúvida]Como selecionar o local de destino do "Application.CaptureScreenshot"
[Resolvido]Como se faz agua?
fps camera não vai para cima e para baixo network unity como resolver?
[Resolvido]Digitar um número e sair um áudio
[TUTORIAL] Unity 5 - Alterar Post-processing Stack através de um SCRIPT
erro AI Enemy
Colisão igual a reproduzir som
Random sem repetir a palavra
COMO POSSO FAZER MUDAR DE CENA QUANDO ABRIR A PORTA
Pegar o gameObject conectado a outro
Como alterar a cor dos pixel um a um de uma renderização
Atualização da unity
Salvar Score e Substituir caso faça Mais!
[Duvida] Em Relacao A Manerira com que exnxergam o player
LoadScene De um Jeito Diferente [duvida]
[Vídeo] - Avaliem essa gameplay do meu jogo por favor?!
MySql + Unity 5.5 Não esta funcionando
Pontos luminosos em objeto 3D
Jogo Teste - Survive
[RESOLVIDO] Problema com objeto 3D após mudar cena
Atualização
Hoje à(s) 5:42 pm
Hoje à(s) 5:33 pm
Hoje à(s) 5:32 pm
Hoje à(s) 5:27 pm
Hoje à(s) 5:19 pm
Hoje à(s) 5:17 pm
Hoje à(s) 5:15 pm
Hoje à(s) 5:15 pm
Hoje à(s) 4:32 pm
Hoje à(s) 4:28 pm
Hoje à(s) 4:13 pm
Hoje à(s) 4:13 pm
Hoje à(s) 3:53 pm
Hoje à(s) 3:34 pm
Hoje à(s) 3:27 pm
Hoje à(s) 2:42 pm
Hoje à(s) 1:57 pm
Hoje à(s) 1:57 pm
Hoje à(s) 1:50 pm
Hoje à(s) 11:59 am
Hoje à(s) 11:49 am
Hoje à(s) 11:38 am
Hoje à(s) 10:19 am
Hoje à(s) 10:08 am
Hoje à(s) 9:26 am
Hoje à(s) 2:49 am
Hoje à(s) 2:35 am
Hoje à(s) 12:58 am
Hoje à(s) 12:54 am
Ontem à(s) 10:49 pm
Ontem à(s) 10:39 pm
Ontem à(s) 10:03 pm
Ontem à(s) 8:55 pm
Ontem à(s) 8:51 pm
Ontem à(s) 8:46 pm
Ontem à(s) 7:31 pm
Ontem à(s) 6:15 pm
Ontem à(s) 5:54 pm
Ontem à(s) 5:48 pm
Ontem à(s) 5:17 pm
Ontem à(s) 3:08 pm
Ontem à(s) 1:08 pm
Ontem à(s) 11:51 am
Ontem à(s) 10:49 am
Ontem à(s) 10:08 am
Ontem à(s) 9:39 am
Ontem à(s) 9:00 am
Qua Maio 24, 2017 11:31 pm
Qua Maio 24, 2017 10:13 pm
Qua Maio 24, 2017 9:57 pm
Qua Maio 24, 2017 9:38 pm
Qua Maio 24, 2017 8:25 pm
Qua Maio 24, 2017 8:23 pm
Qua Maio 24, 2017 8:00 pm
Qua Maio 24, 2017 6:24 pm
Qua Maio 24, 2017 5:51 pm
Qua Maio 24, 2017 5:50 pm
Qua Maio 24, 2017 4:40 pm
Qua Maio 24, 2017 3:43 pm
Qua Maio 24, 2017 3:15 pm
Qua Maio 24, 2017 2:44 pm
Qua Maio 24, 2017 2:41 pm
Qua Maio 24, 2017 2:13 pm
Qua Maio 24, 2017 2:10 pm
Qua Maio 24, 2017 2:00 pm
Qua Maio 24, 2017 1:56 pm
Qua Maio 24, 2017 8:19 am
Qua Maio 24, 2017 7:45 am
Ter Maio 23, 2017 10:26 pm
Ter Maio 23, 2017 10:16 pm
Ter Maio 23, 2017 9:33 pm
Ter Maio 23, 2017 8:04 pm
Ter Maio 23, 2017 7:52 pm
Ter Maio 23, 2017 7:10 pm
Ter Maio 23, 2017 4:59 pm
Ter Maio 23, 2017 4:10 pm
Ter Maio 23, 2017 4:05 pm
Ter Maio 23, 2017 4:02 pm
Ter Maio 23, 2017 3:59 pm
Ter Maio 23, 2017 3:49 pm
Ter Maio 23, 2017 3:46 pm
Ter Maio 23, 2017 3:39 pm
Ter Maio 23, 2017 3:36 pm
Ter Maio 23, 2017 3:29 pm
Ter Maio 23, 2017 3:24 pm
Ter Maio 23, 2017 3:08 pm
Ter Maio 23, 2017 2:57 pm
Ter Maio 23, 2017 2:53 pm
Ter Maio 23, 2017 2:52 pm
Ter Maio 23, 2017 2:45 pm
Ter Maio 23, 2017 2:35 pm
Ter Maio 23, 2017 2:33 pm
Ter Maio 23, 2017 2:10 pm
Ter Maio 23, 2017 1:39 pm
Ter Maio 23, 2017 8:49 am
Ter Maio 23, 2017 8:17 am
Seg Maio 22, 2017 5:32 pm
Seg Maio 22, 2017 2:55 pm
Seg Maio 22, 2017 2:35 pm
lucassmart
Gabriel César O
DuViDoSo34
DuViDoSo34
Gabriel César O
Gabriel César O
Gabriel César O
DuViDoSo34
dstaroski
Weverton Borges da Silva
LuizFixa3D
aleksander700
aleksander700
joabr
dazentt55
Xurupitinha
dazentt55
John Rambo
LuizFixa3D
Zecandy
PauloFR
Callyde Jr
Ghosthy
bruxamissi
weslleyFx
JoelMJunior
hen000
rafaelllsd
rafaelllsd
thiagograssi
wender
Henrique Ramires
dazentt55
916anderson
Matrirxp
marcos4503
bruxamissi
DuViDoSo34
dazentt55
julioou
Madness
felipefell
DuViDoSo34
DuViDoSo34
Chilinger
DuViDoSo34
DuViDoSo34
DuViDoSo34
thiagograssi
PauloFR
thiagograssi
Miss Talon
Junim
Manawydan
MarcosSchultz
Junim
JCLEON
aleksander700
Xurupitinha
marcos4503
WolfTheZelda
Games Indie
MarcosSchultz
MarcosSchultz
Bruninho
MarcosSchultz
dstaroski
dstaroski
Matrirxp
Matrirxp
#N31
Dom3000
marcos4503
Callyde Jr
BatataName
thzin
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
iagokennedyy
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
glauco
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
GameS DoG
iagokennedyy
sabbath
dstaroski
zZAndersonZz
Marc7
marcos4503

[TUTORIAL] Banco de Dados || SQLite

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

TUTORIAL [TUTORIAL] Banco de Dados || SQLite

Mensagem por RenanMSV em Ter Mar 29, 2016 6:42 pm


As vezes temos projetos que precisam guardar muitos valores, sejam de estatisticas ou mesmo configurações do software que voce está criando... Ai vem aquela dificuldade em ter que guardar tudo isto no PlayerPrefs.

Bem, o PlayerPrefs é uma boa opção para guardar poucos registros ( e ele nem é seguro, se voce n criptografar ou inventar seu proprio codigo de criptografia ele pode ser facilmente alterado pelo Regedit do Windows)...

Então como guardar estes dados de maneira mais organizada e ainda sim ser tão segura quanto PlayerPrefs??

Banco de Dados.  Com um banco de dados podemos criar infinitas tabelas (voce ja vai saber o que é uma tabela) e infinitos registros. Podemos guardar logs, vida do player, fase atual, moedas que ele pegou e muitas outras coisas...

Vou explicar aqui como usar o SQLite. Uma versão de SQL em que o banco de dados fica em seu computador e não na rede como o MySQL. Portanto o usuario poderá usar seu banco de dados mesmo sem estar conectado a internet.

Bem para começar preciso te explicar como foi criado o SQL ...

Mas não vou.. haha vai lá no google preguiça...

Após você saber disso podemos começar.

Um banco de dados é um conjunto de tabelas, que são um conjunto de registros.  Então : BancoDeDados[Tabelas][Registros].

Vamos começar preparando nosso ambiente.

Baixe:

64 bits : http://www.sqlite.org/2016/sqlite-dll-win64-x64-3120000.zip
32 bits: http://www.sqlite.org/2016/sqlite-dll-win32-x86-3120000.zip

No seu projeto do Unity crie uma pasta dentro da pasta Assets chamada Plugins. Coloque o conteudo do arquivo que você baixou.

Proximo passo baixe este programa http://sqlitebrowser.org/ e instale .

Agora dentro do SQLite Browser clique em Novo Banco de Dados, defina um nome e salve na pasta Assets.
Uma aba será aberta, apenas feche-a.

Clique em Executar SQL e cole este comando lá:

Código:

CREATE TABLE `stats` (
 `idpers` INTEGER UNIQUE,
 `power` INTEGER,
 `mana` INTEGER,
 `life` INTEGER,
 PRIMARY KEY(idpers)
);

e execute apertando F5. Irá aparecer lá em baixo no log "Query executed successfully" . Se apareceu deu tudo certo. O que fizemos? Criamos uma tabela chamada 'stats' com os campos 'idpers', 'power', 'mana' e 'life'. Ambos campos somente aceitarão numeros inteiros. Não aceitando letras. Definimos o campo 'idpers' como uma chave primária, dizendo que ele é o campo indice, com o qual iremos usar para pesquisas. Tambem dizemos que ele deve ser unico ! Ou seja não haverá 2 linhas com o mesmo valor no campo 'idpers'.

Bem, agora apague o comando e cole este novo:

Código:
insert into stats values (1,5,100,100);

Se apareceu "Query executed successfully" é porque deu certo. O que fizemos agora? Agora inserimos uma linha dizendo que os valores são 1, 5,100 e 100. Ou seja, 1 do id, 5 de power, 100 de mana e 100 de vida. De acordo com a ordem sempre.

Se você clicar na aba Navegar Dados ja pode ver que estes registros estão lá.

Para verificar todos registros voce tambem pode executar este codigo  :

Código:
select * from stats

e seráo retornados todos registros da tabela 'stats'

os dois modos te deixarão visualizar todos registros da tabela.

Bem agora que ja temos tudo pronto e configurado podemos clicar em Write Changes ou CTRL + S para salvar.

Salvou? Então bora pro Unity.

Copie os arquivos System.Data.dll e Mono.Data.Sqlite.dll de **C:\Program Files (x86)\Unity \Editor\Data\Mono\lib\mono\2.0* e cole na pasta Assets/Plugins* do seu projeto. O caminho para achar estes arquivos pode mudar dependendo de onde voce instalou seu Unity.

Colou tudo certinho?  Então ok.

Crie um C# script e cole isto:

Código:
using UnityEngine;
using System.Collections;
using System;
using System.Data;
using Mono.Data.Sqlite;

public class ConnectDB : MonoBehaviour {
 public string PatchToYourDB,TableName;

 void Start () {
 string conn= "URI=file:" + Application.dataPath + PatchToYourDB; // localização do seu .db é igual a pasta da aplicação + patch
 IDbConnection dbconn; // declarando a conexao
 dbconn = (IDbConnection) new SqliteConnection(conn); // setando ela como nova conexao com nosso .db
 dbconn.Open(); //Abrindo conexão com seu banco de dados.
 IDbCommand dbcmd = dbconn.CreateCommand(); // declarando o executador de comandos
 string sqlQuery = "SELECT * from " + TableName; // criando uma query
 dbcmd.CommandText = sqlQuery; // executando a query
 IDataReader reader = dbcmd.ExecuteReader(); // lendo a query
 while (reader.Read()) // o while é percorrido N vezes. Sendo N igual ao numero de linhas afetadas pela query
 {
 int id = reader.GetInt32(0);  // linha atual. Campo [0]
 int pow = reader.GetInt32(1); // linha atual. Campo [1]
 int man = reader.GetInt32(2); // linha atual. Campo [2]
 int lif = reader.GetInt32(3); // linha atual. Campo [3]

 Debug.Log( "Id do Personagem: " + id + " | Power: " + pow + " | Mana: " + man + " | Vida: " + lif + "."); // escrevendo as estatisticas atuais. Elas mudam em cada loop
 }
 reader.Close(); // fechando e setando tudo como null. É NECESSARIO FECHAR TUDO. Setar como Null é boa pratica mas não é obrigatorio.
 reader = null;
 dbcmd.Dispose();
 dbcmd = null;
 dbconn.Close();
 dbconn = null;
 
 }
}

Os resultados (quando se requisita, os valores serao retornados em um tipo de array de campos. o campo (0) é o idpers, o campo (1) é o power, campo (2) é o mana e o (3) é o life. Tudo irá depender do seu banco de dados. Então é importante entender esta parte.

Na aba inspector coloque o nome do seu banco de dados SeuBanco.db ou /PASTA/SeuBanco.db se ele estiver em uma pasta dentro da pasta Assets.
E em TableName coloque o nome da tabela. Por padrão coloque 'stats'. Ja que criamos a tabela com este nome.

Pronto rode seu jogo.

Resultado :




Veja como é simples de salvar estatisticas e qualquer outra coisa em um banco de dados e recuperar quando quiser.
avatar
RenanMSV
Instrutor

Masculino PONTOS : 1738
REPUTAÇÃO : 324
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Banco de Dados || SQLite

Mensagem por RenanMSV em Dom Jun 05, 2016 12:26 pm

Aqui

Código:

 while (reader.Read()) // o while é percorrido N vezes. Sendo N igual ao numero de linhas afetadas pela query
      {
        int id = reader.GetInt32(0);  // linha atual. Campo [0]
        int pow = reader.GetInt32(1); // linha atual. Campo [1]
        int man = reader.GetInt32(2); // linha atual. Campo [2]
        int lif = reader.GetInt32(3); // linha atual. Campo [3]

        Debug.Log( "Id do Personagem: " + id + " | Power: " + pow + " | Mana: " + man + " | Vida: " + lif + "."); // escrevendo as estatisticas atuais. Elas mudam em cada loop
      }

também é possivel pegar o valor pelo seu nome de campo no banco de dados.
Assim:

Código:
 while (reader.Read()) // o while é percorrido N vezes. Sendo N igual ao numero de linhas afetadas pela query
      {
        int id = reader['idpers'];  // linha atual. Campo [0]
        int pow = reader['power']; // linha atual. Campo [1]
        int man = reader['mana']; // linha atual. Campo [2]
        int lif = reader['life']; // linha atual. Campo [3]

        Debug.Log( "Id do Personagem: " + id + " | Power: " + pow + " | Mana: " + man + " | Vida: " + lif + "."); // escrevendo as estatisticas atuais. Elas mudam em cada loop
      }
avatar
RenanMSV
Instrutor

Masculino PONTOS : 1738
REPUTAÇÃO : 324
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Banco de Dados || SQLite

Mensagem por yurinmds em Dom Jun 05, 2016 1:18 pm

Obrigado, você teria algum tutorial de um sistema de login com banco de dadosa?

yurinmds
Membro
Membro

PONTOS : 700
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Banco de Dados || SQLite

Mensagem por NotoriousDev em Dom Jun 05, 2016 1:34 pm

yurinmds escreveu:Obrigado, você teria algum tutorial de um sistema de login com banco de dadosa?


olha no topico da posição 2 Argument is Out of Range, la ele postou.
avatar
NotoriousDev
Avançado
Avançado

Masculino PONTOS : 545
REPUTAÇÃO : 9
Idade : 21
Áreas de atuação : Intermediário C# | Modelagem no Blender3D
Respeito as regras :

Ver perfil do usuário http://127.0.0.1

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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