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:
Receber e setar texto em um objeto
Consigo Fazer um Lerp De Uma Int ? Subir do Valor Inicial até o Valor Especifico devegar ?
Novo jogo em desenvolvimento para android
Ajuda para como fazer esse script voltar a funcionar
MULTIPLAYER Unet: Como sincronizar Variaveis(bool)
Atualização do meu jogo estilo Resident Evil 4 + link do APK
[TUTORIAL] UNITY 5 - Efeito submerso (underwater effect), distorção da água e gotas na tela
[RESOLVIDO] Button perdendo a instancia
[RESOLVIDO] O fórum é só para Unity?
Reproduzir vídeos do youtube
Banco de Dados Cotação
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
UNITY NAO REPRODUZ AUDIO, problema do pc ou da unity?
Necessito de sua ajuda para uma ideia...
(ARQUIVO) Leia aqui como obter sucesso com seu jogo independente?
Como usar o Getfloat no audio mixer?
Duvida com script !
Criar LAN via bluetooth
[DUVIDA] Sistema de diario/Livro de notas
Atributos Network UNET
[RESOLVIDO]Estou Usando FindGameObjectWithTag Porem....
[Tutorial] Mover/Empurrar Objetos, Caixote,etc
Script de Movimentação não funciona
[RESOLVIDO] SDK NÃO FUNCIONA NO WINDOWS 10
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
Novo jogo - Stackx
Movimentação no Espaço como Jet Pack
[Duvida] Collab Excedeu o Seu Limite : Como posso transferir o projeto entre a equipe?
Simular tecla com um botao ou touch
Weslley GameDev
Aguem tem alguma dica sobre NavMeshAgent
Botoes da unity no android e destruir um objeto em qualquer lugar da cena com touch
Dúvida Netwoking
[____ADERIR A UMA CATEGORIA NO FÓRUM____]
é Possivel visualizar uma Variavel Estatica no Inspector ?
Ajuda Com Admob
é Possivel Fazer uma FindTag usando um Text ao inves do GameObject ?
[RESOLVIDO] Animação com "Objetos"
[RESOLVIDO] Enemy IA e Portas
Formação de equipes - AK Vida Real
Como melhorar o desempenho mobile?
Erro com monodevelop
física de carro
[ERRO UNITY] Unity 2017
Erro com lista
Physics2D para Physics?
Tutorial tempo em jogo
Duvida Blender
Programador Rodando o Sul
Novo tema fórum - Votação
Como fazer uma loja em multiplayer?
Resolução do jogo mobile
Equipe Para Desenvolver Games Comigo
aVork - Física realista para veículos
Como fazer uma IA sem Navmesh
NÃO CONSIGO ARRASTAR NADA DA ABA PROJECT PARA A ABA HIERARCHY OU SCENE '-'
[TUTORIAL] Mover, Girar e lançar objetos com o mouse ( estilo Amnesia )
Qual a diferença entre SmoothDamp e Lerp?
[TUTORIAL] Mover, girar e lançar objetos com o MOUSE (Unity 2017, atualizado)
Limitar velocidade no transform ou rigidbody?
Monodevelop
[Dúvida] ~~> É permitido colocar nomes reais de cidades em games?
Lerp não funciona direito com valores grandes
Como Posso Fazer um Time.DeltaTime com uma Int ?
Wheel joint 2d e problema com limite de velocidade
[Duvida] Duvida Com script de mover em direção ao mouse.
Lights bugadas!!
- COMO CRIO UM CRONOMETRO COM O TEMPO DA VIDA REAL? -
Fazer com que a array classifique por distancia
Auto-Complete do Visual Studios
Ajuda com Rigidbody eixo Y mover constante
Background invisivel
Script Objeto Rotate
Jogo Android desenvolvido
Aprendendo a usar o scuptmode
Novo jogo sendo desenvolvido por mim! ( Simulador vida Real )
Equipe para desenvolver o ENDLESS WAR( FPS MULTIPLAYER)
phaton ou unity net work
Como fazer um sistema multiplayer?
[Servidores Experimentais] No Exit - Beta Aberto
Sistema de física e atrito para carro 2d
Problemas com Pitch
Preencher formulario php apartir do Unity
[PROJETO] Last - Trip | Jogo De Sobrevivencia
Ajuda com a IA do meu inimigo
Erro da Unity
[Duvida] Movimentação usando Character Controller
Casa do meu projeto
ERRO EM BUILD PARA ANDROID?
Duvida sobre animação e skill sair sincronizados
ARPG & GoodMotion Update - Sistema para jogos MMORPG e Hack and Slash.
Equipe de desenvolvimento
Utilidade Pública
não sei o que tem de errado com esse script
[RESOLVIDO] Barreira Invisivel
Dúvida no UNET Connect
MultiPlayer Local Android!
Como exibir uma mensagem pop up no android?
Hoje à(s) 11:30 pm
Hoje à(s) 11:30 pm
Hoje à(s) 10:39 pm
Hoje à(s) 10:33 pm
Hoje à(s) 8:56 pm
Hoje à(s) 8:35 pm
Hoje à(s) 6:53 pm
Hoje à(s) 6:48 pm
Hoje à(s) 6:44 pm
Hoje à(s) 6:41 pm
Hoje à(s) 6:29 pm
Hoje à(s) 6:25 pm
Hoje à(s) 5:44 pm
Hoje à(s) 4:25 pm
Hoje à(s) 4:08 pm
Hoje à(s) 3:58 pm
Hoje à(s) 3:30 pm
Hoje à(s) 3:03 pm
Hoje à(s) 2:11 pm
Hoje à(s) 2:08 pm
Hoje à(s) 1:00 pm
Hoje à(s) 1:00 pm
Hoje à(s) 12:22 pm
Hoje à(s) 11:31 am
Hoje à(s) 11:18 am
Hoje à(s) 11:18 am
Hoje à(s) 10:40 am
Hoje à(s) 10:37 am
Hoje à(s) 9:38 am
Hoje à(s) 8:46 am
Hoje à(s) 12:41 am
Ontem à(s) 11:41 pm
Ontem à(s) 11:17 pm
Ontem à(s) 11:04 pm
Ontem à(s) 10:45 pm
Ontem à(s) 10:38 pm
Ontem à(s) 9:31 pm
Ontem à(s) 8:50 pm
Ontem à(s) 8:16 pm
Ontem à(s) 8:08 pm
Ontem à(s) 8:07 pm
Ontem à(s) 5:09 pm
Ontem à(s) 4:43 pm
Ontem à(s) 4:38 pm
Ontem à(s) 4:30 pm
Ontem à(s) 3:25 pm
Ontem à(s) 1:28 pm
Ontem à(s) 1:19 pm
Ontem à(s) 12:00 pm
Ontem à(s) 11:00 am
Ontem à(s) 10:29 am
Ontem à(s) 8:30 am
Seg Jan 15, 2018 11:55 pm
Seg Jan 15, 2018 10:34 pm
Seg Jan 15, 2018 8:54 pm
Seg Jan 15, 2018 8:11 pm
Seg Jan 15, 2018 6:55 pm
Seg Jan 15, 2018 6:53 pm
Seg Jan 15, 2018 6:48 pm
Seg Jan 15, 2018 6:36 pm
Seg Jan 15, 2018 5:40 pm
Seg Jan 15, 2018 5:35 pm
Seg Jan 15, 2018 5:12 pm
Seg Jan 15, 2018 5:05 pm
Seg Jan 15, 2018 4:46 pm
Seg Jan 15, 2018 4:17 pm
Seg Jan 15, 2018 3:55 pm
Seg Jan 15, 2018 3:45 pm
Seg Jan 15, 2018 3:34 pm
Seg Jan 15, 2018 3:17 pm
Seg Jan 15, 2018 3:04 pm
Seg Jan 15, 2018 2:35 pm
Seg Jan 15, 2018 2:31 pm
Seg Jan 15, 2018 2:03 pm
Seg Jan 15, 2018 12:51 pm
Seg Jan 15, 2018 12:48 pm
Seg Jan 15, 2018 12:28 pm
Dom Jan 14, 2018 10:48 pm
Dom Jan 14, 2018 9:30 pm
Dom Jan 14, 2018 8:54 pm
Dom Jan 14, 2018 8:35 pm
Dom Jan 14, 2018 6:26 pm
Dom Jan 14, 2018 4:07 pm
Dom Jan 14, 2018 2:24 pm
Dom Jan 14, 2018 1:28 pm
Dom Jan 14, 2018 12:26 pm
Dom Jan 14, 2018 11:54 am
Dom Jan 14, 2018 10:23 am
Dom Jan 14, 2018 7:54 am
Dom Jan 14, 2018 2:38 am
Dom Jan 14, 2018 1:42 am
Dom Jan 14, 2018 12:00 am
Sab Jan 13, 2018 11:42 pm
Sab Jan 13, 2018 11:40 pm
Sab Jan 13, 2018 5:50 pm
Sab Jan 13, 2018 3:53 pm
Sab Jan 13, 2018 3:11 pm
Sab Jan 13, 2018 3:08 pm
Sab Jan 13, 2018 1:54 pm
MRX
nicolasfive
fabriciorsz34
fabriciorsz34
Extreme Craft
thiagotmi
Pixelizad
postch
recagonlei
natanael.olimpio
natanael.olimpio
natanael.olimpio
Extreme Craft
cody0033
cody0033
916anderson
jasondavin
Água Sem Hidrogênio
Gwiisk
jasondavin
recagonlei
dstaroski
Água Sem Hidrogênio
recagonlei
dstaroski
dstaroski
googolepton
Lagoeiro
glauco
Phph09
Água Sem Hidrogênio
luizmauro123
fabriciorsz34
recagonlei
recagonlei
recagonlei
Água Sem Hidrogênio
rafaelllsd
recagonlei
recagonlei
fabriciorsz34
dstaroski
Zack2
Zack2
PatifeCraft
luizmauro123
Callyde Jr
Callyde Jr
Zack2
heliab125
M4theuz
Phph09
João Marcos S. R.
cody0033
recagonlei
Callyde Jr
MarcosSchultz
MarcosSchultz
recagonlei
MarcosSchultz
Phph09
Phph09
ÁguaMineral
Daniel Pires da Silva
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Callyde Jr
RonilddoRR
RW.
ÁguaMineral
pitercredd
recagonlei
rafaelllsd
Álefe Kauvyhtz
Álefe Kauvyhtz
recagonlei
Jmspp
BRGC
Gwiisk
recagonlei
pitercredd
Zack2
Água Sem Hidrogênio
luizmauro123
recagonlei
RonilddoRR
recagonlei
misael pinheiro
EricKBMS
recagonlei
recagonlei
Água Sem Hidrogênio

[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 : 1979
REPUTAÇÃO : 328
Á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 : 1979
REPUTAÇÃO : 328
Á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 : 937
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 : 786
REPUTAÇÃO : 9
Idade : 22
Á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