comunicacao com banco de dados feito com lista
4 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
comunicacao com banco de dados feito com lista
Marcos no tutorial 14 da serie jogo de terror tu salvou as chaves em uma lista, eu fiz da mesma forma e deu certo mais quando fui dar o PlayerPrefs.SetInt nas chaves da lista aparece uma especie de erro (ArgumentOutOfRangeException: Argument is out of range.
Parameter: index) e nao salva as chaves, tem como tu mim ajudar.
Parameter: index) e nao salva as chaves, tem como tu mim ajudar.
alexalex- Membro
- PONTOS : 3151
REPUTAÇÃO : 1
Respeito as regras :
Re: comunicacao com banco de dados feito com lista
o índice que você colocou não existe verifique o tamanho da lista
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: comunicacao com banco de dados feito com lista
Eu nao entendo quase nada de programacao mais a list esta adicionando elementos corretamente , eu nao estou conseguindo salvar a lista com PlayerPrefs.SetInt e nem carregar com PlayerPrefs.GetInt. E ai que da erro, quando eu vou salvar a lista com PlayerPrefs.
alexalex- Membro
- PONTOS : 3151
REPUTAÇÃO : 1
Respeito as regras :
Re: comunicacao com banco de dados feito com lista
como você esta fazendo ?
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: comunicacao com banco de dados feito com lista
public static List <int> chaves = new List <int>();
for (int x = 0; x < 30; x++) {
PlayerPrefs.SetInt ("CHAVES" + x, chaves [x]);
}
for (int x = 0; x < 30; x++) {
chaves [x] = PlayerPrefs.GetInt ("CHAVES" + x);
}
E assim que salvo e carrego a lista.
Obs: acima na mensagem nao esta reconhecendo os simbolos de maior e menor que, mais eu os coloco no script a frente de List e dentro deles coloco int.
for (int x = 0; x < 30; x++) {
PlayerPrefs.SetInt ("CHAVES" + x, chaves [x]);
}
for (int x = 0; x < 30; x++) {
chaves [x] = PlayerPrefs.GetInt ("CHAVES" + x);
}
E assim que salvo e carrego a lista.
Obs: acima na mensagem nao esta reconhecendo os simbolos de maior e menor que, mais eu os coloco no script a frente de List e dentro deles coloco int.
alexalex- Membro
- PONTOS : 3151
REPUTAÇÃO : 1
Respeito as regras :
Re: comunicacao com banco de dados feito com lista
Bom dia mano eu fiz assim como Marcos encinou e nao esta dando erros
Script DATA e da CHAVES
Script DATA e da CHAVES
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class CHAVE : MonoBehaviour {
public int IDdaChave;
public float DistanciaDaChave = 3;
public AudioClip somChave;
private bool PegouChave;
private GameObject Jogador;
void Start (){
PegouChave = false;
Jogador = GameObject.FindWithTag ("Player");
}
void Update () {
if (Vector3.Distance (transform.position, Jogador.transform.position) < DistanciaDaChave) {
if (Input.GetKeyDown ("e") && PegouChave == false) {
PORTA.ListaDeIDs.Add (IDdaChave);
PegouChave = true;
GetComponent<MeshRenderer> ().enabled = false;
GetComponent<AudioSource> ().PlayOneShot (somChave);
Destroy (gameObject,2.0f);
}
}
}
}
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class DATA : MonoBehaviour{
public static List<int> chaves = new List<int>();
public static bool SalvarChaves;
private GameObject [] Datas;
void Aweke (){
Datas = GameObject.FindGameObjectsWithTag ("DATA");
if (Datas.Length >= 2){
Destroy(Datas[0]);
}
DontDestroyOnLoad(transform.gameObject);
}
void Start () {
SalvarChaves = false;
for (int x = 0; x < 30; x++) {
if(PlayerPrefs.HasKey ("chaves"+x)){
chaves[x] = PlayerPrefs.GetInt("chaves"+x);
}
}
}
void funcaoSalvarChaves () {
for (int x = 0; x < 30; x++){
PlayerPrefs.SetInt ("chaves"+x , chaves[x] );
}
}
void Update (){
if(SalvarChaves == true){
funcaoSalvarChaves ();
SalvarChaves = false;
}
}
}
Re: comunicacao com banco de dados feito com lista
Ola,alexalex escreveu:
- Código:
public static List <int> chaves = new List <int>();
for (int x = 0; x < 30; x++) {
PlayerPrefs.SetInt ("CHAVES" + x, chaves [x]);
}
for (int x = 0; x < 30; x++) {
chaves [x] = PlayerPrefs.GetInt ("CHAVES" + x);
}
E assim que salvo e carrego a lista.
Obs: acima na mensagem nao esta reconhecendo os simbolos de maior e menor que, mais eu os coloco no script a frente de List e dentro deles coloco int.
Seu problema esta em tentar adicionar um elemento em um lista sem ter certeza do tamanho. Como aparentemente vai ter sempre a mesma quandtidade de chaves poderia usar um vetor, o que seria mais simple.
Com a lista poderia inicializar ela com algo parecido com isso:
- Código:
public static List <int> chaves = new List <int>(); //voce cria a lista, ela tem zero elementos
public static void Inicializa()
{
chaves.Clear();
for (int x = 0; x < 30; x++)
{
chaves.add(PlayerPrefs.GetInt ("CHAVES" + x));//assim voce consegueria
}
}
Altamir- Iniciante
- PONTOS : 3066
REPUTAÇÃO : 10
Idade : 40
Áreas de atuação : Programação, C# and PHP
Respeito as regras :
Re: comunicacao com banco de dados feito com lista
Valeu ai Altamir, consegui salvar da forma que tu falou.
alexalex- Membro
- PONTOS : 3151
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» [Duvida] Como funciona a coleta de dados e como é feito?
» Como faço para inserir oa dados de pontuação em um banco de dados
» Receber dados de um banco de dados e escrever em unity
» Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
» Multiplayer e comunicação
» Como faço para inserir oa dados de pontuação em um banco de dados
» Receber dados de um banco de dados e escrever em unity
» Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
» Multiplayer e comunicação
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos