Sistema de desbloqueio de personagens
+4
thzin
Gabriel César O
JohnRambo
Hardencio
8 participantes
Página 1 de 1
Sistema de desbloqueio de personagens
Olá pessoal,
Estou tentando criar um sistema de desbloqueio de personagem, a partir de coleta de moedas/dinheiro. Aquele sistema clássico de jogos casuais.
Estou com algumas duvidas a respeito de como e qual é a melhor maneira de fazer isso.
Estou utilizando o script "DATA" do tuto do Marcos pra salvar a grana. E pretendo fazer com button canvas.
As duvidas são:
- Fazer um sistema que verifique quanto dinheiro eu tenho e depois deixe o button interactable, ou deixar o button sempre ativo e verifique quando clica. E como fazer a seleção depois q estiver liberado, e como verificar quando esta liberado.
- Como salvar o gameObject no playerprefs.
- Como fazer a troca de personagem? (deixar todos em um GameObject e ativar e desativar com SetActive, ou trocar o mesh dele? Pois são personagem em 3D) (Se for fazer ativando e desativando, tem que fazer um verificador para ver qual está ativo e desativar para ativar o novo.)
Enfim, são muitas duvidas, e não achei nenhum tuto na internet :/
Alguém topa me ajudar a fazer isso? Ai depois eu faço um bom tuto pra divulgar pra quem está com dificuldades como eu. xD
Abraço!!
Estou tentando criar um sistema de desbloqueio de personagem, a partir de coleta de moedas/dinheiro. Aquele sistema clássico de jogos casuais.
Estou com algumas duvidas a respeito de como e qual é a melhor maneira de fazer isso.
Estou utilizando o script "DATA" do tuto do Marcos pra salvar a grana. E pretendo fazer com button canvas.
As duvidas são:
- Fazer um sistema que verifique quanto dinheiro eu tenho e depois deixe o button interactable, ou deixar o button sempre ativo e verifique quando clica. E como fazer a seleção depois q estiver liberado, e como verificar quando esta liberado.
- Como salvar o gameObject no playerprefs.
- Como fazer a troca de personagem? (deixar todos em um GameObject e ativar e desativar com SetActive, ou trocar o mesh dele? Pois são personagem em 3D) (Se for fazer ativando e desativando, tem que fazer um verificador para ver qual está ativo e desativar para ativar o novo.)
Enfim, são muitas duvidas, e não achei nenhum tuto na internet :/
Alguém topa me ajudar a fazer isso? Ai depois eu faço um bom tuto pra divulgar pra quem está com dificuldades como eu. xD
Abraço!!
- Código:
using UnityEngine;
using System.Collections;
public class DATA : MonoBehaviour {
public static int dinheiro;
private GameObject[] Datas;
void Awake(){
Datas = GameObject.FindGameObjectsWithTag ("DATA");
if (Datas.Length >= 2) {
Destroy (Datas [0]);
}
DontDestroyOnLoad (transform.gameObject);
}
// Use this for initialization
void Start () {
if (PlayerPrefs.HasKey ("Dinheiro")) {
dinheiro = PlayerPrefs.GetInt ("Dinheiro");
} else {
PlayerPrefs.SetInt ("Dinheiro", dinheiro);
}
}
// Update is called once per frame
void Update () {
}
}
Hardencio- Avançado
- PONTOS : 3482
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Olá Hardencio.
Te recomendo ver o tutorial do ismarspn.
é uma essência bem parecida
Te recomendo ver o tutorial do ismarspn.
é uma essência bem parecida
JohnRambo- Moderador
- PONTOS : 4937
REPUTAÇÃO : 661
Idade : 23
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: Sistema de desbloqueio de personagens
que legal cara!John Rambo escreveu:Olá Hardencio.
Te recomendo ver o tutorial do ismarspn.
é uma essência bem parecida
Gabriel César O- Profissional
- PONTOS : 3748
REPUTAÇÃO : 217
Idade : 22
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Gurizada, por enquanto é isso que eu já fiz...
To utilizando os personagens tudo em um só gameobject (pois só vai ter no máximo 10 no meu jogo). E estou usando o SetActive para habilitar e desabilitar eles.
É um botão na qual você seta qual é o personagem direto no button e ele ativa o escolhido descontando seu dinheiro...
Ajuda necessária:
- Como salvar o qual foi ativado ou desativado...
- Como verificar se quele personagem já foi liberado ou não...
- E como deixar o custo do personagem publico no botão tbm, (igual a forma da escolha) pois se não tenho que reescrever o script de custo dependendo da quantia de personagens que vou ter...
Ps: No Script DATA é qual quero utilizar para salvar.
Ps: Vai ser na mesma cena de gameplay a troca de personagens, por isso não estou instanciando eles, e sim ativando e desativando.
Obrigado a todos que ajudarem.
To utilizando os personagens tudo em um só gameobject (pois só vai ter no máximo 10 no meu jogo). E estou usando o SetActive para habilitar e desabilitar eles.
É um botão na qual você seta qual é o personagem direto no button e ele ativa o escolhido descontando seu dinheiro...
Ajuda necessária:
- Como salvar o qual foi ativado ou desativado...
- Como verificar se quele personagem já foi liberado ou não...
- E como deixar o custo do personagem publico no botão tbm, (igual a forma da escolha) pois se não tenho que reescrever o script de custo dependendo da quantia de personagens que vou ter...
Ps: No Script DATA é qual quero utilizar para salvar.
Ps: Vai ser na mesma cena de gameplay a troca de personagens, por isso não estou instanciando eles, e sim ativando e desativando.
Obrigado a todos que ajudarem.
- Código:
using UnityEngine;
using System.Collections;
public class DATA : MonoBehaviour {
public static int dinheiro;
public static int _personagemStatic;
private GameObject[] Datas;
void Awake(){
Datas = GameObject.FindGameObjectsWithTag ("DATA");
if (Datas.Length >= 2) {
Destroy (Datas [0]);
}
DontDestroyOnLoad (transform.gameObject);
}
// Use this for initialization
void Start () {
if (PlayerPrefs.HasKey ("Dinheiro")) {
dinheiro = PlayerPrefs.GetInt ("Dinheiro");
} else {
PlayerPrefs.SetInt ("Dinheiro", dinheiro);
}
//tentei criar esse playerprefs para salvar o personagem(deixar ativado ou desativado), mas não está funcionando ainda.
if (PlayerPrefs.HasKey ("Personagem")) {
_personagemStatic = PlayerPrefs.GetInt ("Personagem");
}else {
PlayerPrefs.SetInt ("Personagem", _personagemStatic);
}
}
// Update is called once per frame
void Update () {
}
}
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class TesteLiberarPersonagem : MonoBehaviour {
public GameObject[] personagens;
public int[] custo;
public Image textureLock, textureUnlock;
//aqui no for, inves de criar uma int estou setando a int do personagem estatico do script DATA.
//o for é responsavel para ativar o personagem escolhido e desativar aquele que já estava aivado....
public void escolherPersonagem(int qualPersonagem){
if(DATA.dinheiro >= custo[0]){
for (DATA._personagemStatic = 0; DATA._personagemStatic < personagens.Length; DATA._personagemStatic++) {
personagens [DATA._personagemStatic].SetActive (false);
}
//ativa o personagem que escolher no button da lista de personagem.
personagens [qualPersonagem].SetActive (true);
//desconta o preço do personagem, que no caso é o custo 1.
DATA.dinheiro -= custo [0];
//Aqui seto que o personagem q foi ativado é = ao do playerprefs.
qualPersonagem = DATA._personagemStatic;
//estou tentando salvar dessa forma mas não está salvando o personagem se ele está ativo ou desativado...
//(ainda não esta funcionando)
PlayerPrefs.SetInt ("Personagem", DATA._personagemStatic);
}
}
//ainda não sei como utilizar essa void neste caso.
void Locked(){
GetComponent<Button> ().interactable = false;
textureLock.enabled = true;
textureUnlock.enabled = false;
}
//ainda não sei como utilizar essa void neste caso.
void Unlocke(){
GetComponent<Button> ().interactable = true;
textureLock.enabled = false;
textureUnlock.enabled = true;
}
}
Hardencio- Avançado
- PONTOS : 3482
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Pra salvar é só usar o playerprefs.Hardencio escreveu:Gurizada, por enquanto é isso que eu já fiz...
To utilizando os personagens tudo em um só gameobject (pois só vai ter no máximo 10 no meu jogo). E estou usando o SetActive para habilitar e desabilitar eles.
É um botão na qual você seta qual é o personagem direto no button e ele ativa o escolhido descontando seu dinheiro...
Ajuda necessária:
- Como salvar o qual foi ativado ou desativado...
- Como verificar se quele personagem já foi liberado ou não...
- E como deixar o custo do personagem publico no botão tbm, (igual a forma da escolha) pois se não tenho que reescrever o script de custo dependendo da quantia de personagens que vou ter...
Ps: No Script DATA é qual quero utilizar para salvar.
Ps: Vai ser na mesma cena de gameplay a troca de personagens, por isso não estou instanciando eles, e sim ativando e desativando.
Obrigado a todos que ajudarem.
- Código:
using UnityEngine;
using System.Collections;
public class DATA : MonoBehaviour {
public static int dinheiro;
public static int _personagemStatic;
private GameObject[] Datas;
void Awake(){
Datas = GameObject.FindGameObjectsWithTag ("DATA");
if (Datas.Length >= 2) {
Destroy (Datas [0]);
}
DontDestroyOnLoad (transform.gameObject);
}
// Use this for initialization
void Start () {
if (PlayerPrefs.HasKey ("Dinheiro")) {
dinheiro = PlayerPrefs.GetInt ("Dinheiro");
} else {
PlayerPrefs.SetInt ("Dinheiro", dinheiro);
}
//tentei criar esse playerprefs para salvar o personagem(deixar ativado ou desativado), mas não está funcionando ainda.
if (PlayerPrefs.HasKey ("Personagem")) {
_personagemStatic = PlayerPrefs.GetInt ("Personagem");
}else {
PlayerPrefs.SetInt ("Personagem", _personagemStatic);
}
}
// Update is called once per frame
void Update () {
}
}
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class TesteLiberarPersonagem : MonoBehaviour {
public GameObject[] personagens;
public int[] custo;
public Image textureLock, textureUnlock;
//aqui no for, inves de criar uma int estou setando a int do personagem estatico do script DATA.
//o for é responsavel para ativar o personagem escolhido e desativar aquele que já estava aivado....
public void escolherPersonagem(int qualPersonagem){
if(DATA.dinheiro >= custo[0]){
for (DATA._personagemStatic = 0; DATA._personagemStatic < personagens.Length; DATA._personagemStatic++) {
personagens [DATA._personagemStatic].SetActive (false);
}
//ativa o personagem que escolher no button da lista de personagem.
personagens [qualPersonagem].SetActive (true);
//desconta o preço do personagem, que no caso é o custo 1.
DATA.dinheiro -= custo [0];
//Aqui seto que o personagem q foi ativado é = ao do playerprefs.
qualPersonagem = DATA._personagemStatic;
//estou tentando salvar dessa forma mas não está salvando o personagem se ele está ativo ou desativado...
//(ainda não esta funcionando)
PlayerPrefs.SetInt ("Personagem", DATA._personagemStatic);
}
}
//ainda não sei como utilizar essa void neste caso.
void Locked(){
GetComponent<Button> ().interactable = false;
textureLock.enabled = true;
textureUnlock.enabled = false;
}
//ainda não sei como utilizar essa void neste caso.
void Unlocke(){
GetComponent<Button> ().interactable = true;
textureLock.enabled = false;
textureUnlock.enabled = true;
}
}
olha esse tutorial do Marcos.
https://www.youtube.com/watch?v=qpYmpRM6y3U
thzin- Avançado
- PONTOS : 2650
REPUTAÇÃO : 19
Idade : 22
Áreas de atuação : Básico 3ds Max
Básico Maya
Básico Photoshop
Intermediário Blender
Intermediário Unreal Engine
Interm
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Eu to usando o playerprefs mas não está salvando...Não sei oq estou fazendo de errado.
Hardencio- Avançado
- PONTOS : 3482
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Olha tenta fazer assim, vai criar uma key no playerprefs pro dinheiro, ai quando apertar em um botão vai tirar o dinheiro e liberar o personagem, o botão ao mesmo tempo vai mudar o valor de uma int salva no playerprefs por exemplo 0 = desativado e 1 = ativado, assim vai salvar os personagens que ja comprou, ai na tela de seleção de personagem vai ter um if que vai checar se a int é 0 ou 1 pra dizer se você pode ou não usar aquele personagem, bom esse é o jeito que eu tentaria fazer, se não tiver entendido alguma coisa do que eu falei só perguntar.Hardencio escreveu:Eu to usando o playerprefs mas não está salvando...Não sei oq estou fazendo de errado.
thzin- Avançado
- PONTOS : 2650
REPUTAÇÃO : 19
Idade : 22
Áreas de atuação : Básico 3ds Max
Básico Maya
Básico Photoshop
Intermediário Blender
Intermediário Unreal Engine
Interm
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Cara, não entendi mt bem...Tem como fazer um exemplo?
Hardencio- Avançado
- PONTOS : 3482
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Vou tentar fazer um código de exemplo assim que der.Hardencio escreveu:Cara, não entendi mt bem...Tem como fazer um exemplo?
thzin- Avançado
- PONTOS : 2650
REPUTAÇÃO : 19
Idade : 22
Áreas de atuação : Básico 3ds Max
Básico Maya
Básico Photoshop
Intermediário Blender
Intermediário Unreal Engine
Interm
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Beleza, valeu!!thzin escreveu:Vou tentar fazer um código de exemplo assim que der.Hardencio escreveu:Cara, não entendi mt bem...Tem como fazer um exemplo?
Mais alguém sabe como salvar um GameObject se ele está ativo ou desativado no playerPrefs?
Hardencio- Avançado
- PONTOS : 3482
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Não entendi...
Como assim ("Mais alguém sabe como salvar um GameObject se ele está ativo ou desativado no playerPrefs?")
Como assim ("Mais alguém sabe como salvar um GameObject se ele está ativo ou desativado no playerPrefs?")
Re: Sistema de desbloqueio de personagens
Em uma bool?Hardencio escreveu:Beleza, valeu!!thzin escreveu:Vou tentar fazer um código de exemplo assim que der.Hardencio escreveu:Cara, não entendi mt bem...Tem como fazer um exemplo?
Mais alguém sabe como salvar um GameObject se ele está ativo ou desativado no playerPrefs?
IanLuan- Mestre
- PONTOS : 3011
REPUTAÇÃO : 102
Idade : 24
Áreas de atuação : Programação C#
Básico Design (Blender / Photoshop)
Desenvolvimento Web e Apps.
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Simples! Voce vai usar o comando
O que eu fiz basicamente foi guardar isso numa variavel int, eu peguei status atual do objeto (se esta desativado ou ativado) e guardei nessa variavel int que se chama "Objeto" feito isso, é só salvar ela em uma playerprefs qualquer!
- Código:
if(NomeDoSeuObjeto.activeSelf == true){
Objeto = 1;
}
else{
Objeto = 0;
}
O que eu fiz basicamente foi guardar isso numa variavel int, eu peguei status atual do objeto (se esta desativado ou ativado) e guardei nessa variavel int que se chama "Objeto" feito isso, é só salvar ela em uma playerprefs qualquer!
Re: Sistema de desbloqueio de personagens
Marcos digamos q eu tenha dois personagens, o A e dentro de cada um possui componentes como scripts etc. Eu quero que quando aperte uma letra, por exemplo, ele desative todo! o personagem A todo, junto com seus componentes. Uso o Active self para isso né?
IanLuan- Mestre
- PONTOS : 3011
REPUTAÇÃO : 102
Idade : 24
Áreas de atuação : Programação C#
Básico Design (Blender / Photoshop)
Desenvolvimento Web e Apps.
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Pra isso, você pode colocar um script dentro do personagem, daí tu vai usando o GetComponnent pra ir desativando elemento, em seguida, na ultima linha tu bota pra desativar o Objeto.. Mais tipo.. Se tu desativar o GameObject, ele já desativa tudo que esta dentro automaticamente..
Se tiver ficado muito confuso, eu posso postar um exemplo do script aqui!
Se tiver ficado muito confuso, eu posso postar um exemplo do script aqui!
Re: Sistema de desbloqueio de personagens
Eu n posso usar tipo player.getcomponent<>().ActiveSelf = false?
IanLuan- Mestre
- PONTOS : 3011
REPUTAÇÃO : 102
Idade : 24
Áreas de atuação : Programação C#
Básico Design (Blender / Photoshop)
Desenvolvimento Web e Apps.
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Se for desabilitar um componente, voce usa
NomeDoCombonente.enabled = true/false
Desabilitar objeto
NomeDoObjeto.SetActive(true/false);
O active self, voce o usa mais pra checar se aquele objeto ta ativo ou não, é bem útil!
NomeDoCombonente.enabled = true/false
Desabilitar objeto
NomeDoObjeto.SetActive(true/false);
O active self, voce o usa mais pra checar se aquele objeto ta ativo ou não, é bem útil!
Re: Sistema de desbloqueio de personagens
Ah sim sim, então eu posso linkar um gameobject e desativar pelo self certo? tipo assim:
tá certo?
- Código:
public GameObject Player1;
void update () {
if(Input.GetKeyDown("f")) {
Player1.SetAtive (false);
tá certo?
IanLuan- Mestre
- PONTOS : 3011
REPUTAÇÃO : 102
Idade : 24
Áreas de atuação : Programação C#
Básico Design (Blender / Photoshop)
Desenvolvimento Web e Apps.
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Sim! Voce usou certinho! SetActive, ele só serve pra desativar ou ativar, já o selActive, ele serve pra checar sabe? Se tu quiser jogar dentro de um if.. por exemplo. Eu quero que o tal coisa só pode ser executado se Player1 tiver ativo, daí..
- Código:
public GameObject Player1;
private bool TalCoisa = false;
void Update(){
if(Player1.selfActive == true){
TalCoisa = true;
}
}
Re: Sistema de desbloqueio de personagens
Cara, eu ia te perguntar isso agr kkk sério, ia perguntar como fazia para checar no if. Valeu kkk loucuura
IanLuan- Mestre
- PONTOS : 3011
REPUTAÇÃO : 102
Idade : 24
Áreas de atuação : Programação C#
Básico Design (Blender / Photoshop)
Desenvolvimento Web e Apps.
Respeito as regras :
Re: Sistema de desbloqueio de personagens
E se eu tenho uma lista de personagens, igual o script postado no inicio, como faço pra salvar aquele que eu habilitar? Tipo, vai ter um botão para cada personagem aí quando eu clicar em por exemplo no 2, ele vai desabilitar o que já está habilitado e ativar o personagem 2. É oq o for está fazendo. Como seto um numero para cada personagem?
Hardencio- Avançado
- PONTOS : 3482
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Ahn.. Deixa eu ver.. Você pode coloca-los lá no script, numa variavel publica. Daí tu criar uma string. Funcionaria assim. Se o jogador clicou no botão pra ativar a Ricarda, essa string vai ativar a Ricarda. Se ele clicou pra ativar o Joriscreiton, essa string vai receber a palavra Joriscreiton. Até ai ok.
Daí tu bota uma checagem, tipo..
É simples! Por causa do jogador ter escolhido a Ricarda, o joricreiton é desativado, e vice-versa!
Daí tu bota uma checagem, tipo..
- Código:
if(PersonagemAtual == ("Ricarda"){
Ricarda.SetActive(true);
Joriscreiton.SetActive(false);
}
É simples! Por causa do jogador ter escolhido a Ricarda, o joricreiton é desativado, e vice-versa!
Re: Sistema de desbloqueio de personagens
sim sim, ou melhor para visualizar fazer algo tipo Se o personagem novo for Ricarda, ativar o ricarda e colocar uma forma de desativar o personagem que estava sem ser diretamente pelo nome do personagem. Pq ai seria automático. Se você setasse todoss o personagens que já estavam como Personagem atual e o personagem novo fosse igual ao ricarda, você ativava o novo e desativava o personagem atual, ai n precisaria ver o nome tipo joriscreiton, qualquer um q estivesse antes seria desativado e tal, só para automatizar caso ele não quisesse identificar qual o personagem q já estava antes e claro se tiver mais de 2 personagens :D
IanLuan- Mestre
- PONTOS : 3011
REPUTAÇÃO : 102
Idade : 24
Áreas de atuação : Programação C#
Básico Design (Blender / Photoshop)
Desenvolvimento Web e Apps.
Respeito as regras :
Re: Sistema de desbloqueio de personagens
marcos4503 escreveu:Ahn.. Deixa eu ver.. Você pode coloca-los lá no script, numa variavel publica. Daí tu criar uma string. Funcionaria assim. Se o jogador clicou no botão pra ativar a Ricarda, essa string vai ativar a Ricarda. Se ele clicou pra ativar o Joriscreiton, essa string vai receber a palavra Joriscreiton. Até ai ok.
Daí tu bota uma checagem, tipo..
- Código:
if(PersonagemAtual == ("Ricarda"){
Ricarda.SetActive(true);
Joriscreiton.SetActive(false);
}
É simples! Por causa do jogador ter escolhido a Ricarda, o joricreiton é desativado, e vice-versa!
Não man, eu to usando uma lista []. Meu script já tem um "for" que faz a ativação e desativação dos personagens. Eu não consigo salvar o personagem que está ativo entende?
Segue o Script:
- Código:
public void escolherPersonagem(int qualPersonagem){
if(DATA.dinheiro >= custo[0]){
for (DATA._personagemStatic = 0; DATA._personagemStatic < personagens.Length; DATA._personagemStatic++) {
personagens [DATA._personagemStatic].SetActive (false);
}
//ativa o personagem que escolher no button da lista de personagem.
personagens [qualPersonagem].SetActive (true);
//desconta o preço do personagem, que no caso é o custo numero 1, que está em primeiro da lista.
DATA.dinheiro -= custo [0];
//estou tentando salvar dessa forma mas não está salvando o personagem se ele está ativo ou desativado...
//(ainda não esta funcionando)
}
PlayerPrefs.SetInt ("Personagem", numeroPersonagem = 1);
}
Isso é um button. Eu quero salvar o personagem que eu escolhi, nesse caso oq eu ativei.
Hardencio- Avançado
- PONTOS : 3482
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Sistema de desbloqueio de personagens
Simplesmente, vocÊ vai jogar o nome do personagem que ta ativo, numa playerprefs ou semelhante..
Eu não vejo necessidade de usar for pra escolher o personagem..
Eu não vejo necessidade de usar for pra escolher o personagem..
Re: Sistema de desbloqueio de personagens
marcos4503 escreveu:Simplesmente, vocÊ vai jogar o nome do personagem que ta ativo, numa playerprefs ou semelhante..
Eu não vejo necessidade de usar for pra escolher o personagem..
Seguinte, eu tenho todos meus personagens ativados na cena (o jogo todo é só em uma cena), o for está fazendo o seguinte: Ex: Se eu tenho o perso nº 1 ativado, e clicar no botão do personagem numero 5, ele vai desativar o 1 e ativar o 5, logo apos se eu clicar no botão numero 2, ele vai ativar o numero 2 e desativar o numero 5 e assim vai....lembrando que os personagens estão em uma lista (são uns 10).
Oq eu preciso fazer é salvar qual foi o ultimo que eu ativei, para que o jogador feche o jogo e quando ele volte esteja o ultimo que ele escolheu.
Então nesse caso o for é fundamental... Eu só não consigo fazer salvar o personagem que foi escolhido por ultimo...Já tentei de varias formas : /
Hardencio- Avançado
- PONTOS : 3482
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Sistema de desbloqueio de personagens
cara, ta fazendo "errado".
faz o seguinte... quando ativar o 5 por exemplo, faz um for pra desativar todos, e depois um comando pra ativar o 5...
também, basta ter uma int com o nome "index" por exemplo, e nela você seta o valor 5 e faz um PlayerPrefs, pra depois resgatar o valor da variável.
No start, é só fazer a int "index" receber um PlayerPrefs.GetInt pra recuperar o valor, ai você faz novamente o for para desativar tudo, e ativa só o objeto "index"
faz o seguinte... quando ativar o 5 por exemplo, faz um for pra desativar todos, e depois um comando pra ativar o 5...
também, basta ter uma int com o nome "index" por exemplo, e nela você seta o valor 5 e faz um PlayerPrefs, pra depois resgatar o valor da variável.
No start, é só fazer a int "index" receber um PlayerPrefs.GetInt pra recuperar o valor, ai você faz novamente o for para desativar tudo, e ativa só o objeto "index"
Re: Sistema de desbloqueio de personagens
MUITOOOO obrigado Marcos!! Deu certo oq você falou!!MarcosSchultz escreveu:cara, ta fazendo "errado".
faz o seguinte... quando ativar o 5 por exemplo, faz um for pra desativar todos, e depois um comando pra ativar o 5...
também, basta ter uma int com o nome "index" por exemplo, e nela você seta o valor 5 e faz um PlayerPrefs, pra depois resgatar o valor da variável.
No start, é só fazer a int "index" receber um PlayerPrefs.GetInt pra recuperar o valor, ai você faz novamente o for para desativar tudo, e ativa só o objeto "index"
Não sei se dá pra melhorar esse script, mas ta funcionando hehehe
Segue o Script:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class EscolherPersonagem : MonoBehaviour {
[SerializeField]
private GameObject[] personagens;
int index = 5;
void Awake(){
index = PlayerPrefs.GetInt ("index");
for (int x = 0; x < personagens.Length; x++) {
personagens [x].SetActive (false);
}
personagens [index].SetActive (true);
}
public void Desativar(){
for (int x = 0; x < personagens.Length; x++) {
personagens [x].SetActive (false);
}
}
void Update(){
}
public void personagem1(int custo){
Desativar ();
personagens [0].SetActive (true);
PlayerPrefs.SetInt ("index", index = 0);
}
public void personagem2(int custo){
Desativar ();
personagens [1].SetActive (true);
PlayerPrefs.SetInt ("index", index = 1);
}
public void personagem3(int custo){
Desativar ();
personagens [2].SetActive (true);
PlayerPrefs.SetInt ("index", index = 2);
}
}
Vou fazer um tuto de sistema de desbloqueio de personagens quando eu tiver tempo, pq tem poucos na interwebs.
Hardencio- Avançado
- PONTOS : 3482
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Tópicos semelhantes
» Posso usar o sistema de marcas de derrapagem como base para outro sistema?
» Sistema de rondas // Seleção de Personagens
» Qual o melhor sistema sistema de anuncios para android?
» Como criar sistema de Habilidades (Skills) para o personagem 2D / e sistema de batalha 2D
» [TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
» Sistema de rondas // Seleção de Personagens
» Qual o melhor sistema sistema de anuncios para android?
» Como criar sistema de Habilidades (Skills) para o personagem 2D / e sistema de batalha 2D
» [TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos