Fazer uma seleção de personagens e seguir para o jogo com o personagem escolhido
3 participantes
Página 1 de 1
Fazer uma seleção de personagens e seguir para o jogo com o personagem escolhido
Boa Tarde, Estou com uma dúvida de qualquer melhor forma de fazer uma seleção de personagens, primeiro eu tenho uma cena que seleciona se ele é menino ou menina e depois terei que fazer um jeito de aparece a selecão que ele fez na cena passada ai se for menina mostra só as opções de pele da menina, e a mesma coisa ao contrario se for menino aparece só as opcoes de pele de menino e assim que ele selecionar se é menino ou menina e o tipo de pele, o jogo começará com o personagem certo, qual a melhor maneira de fazer isso?? como tipo salvando as opcoes do personagem ou fazendo do jeito que estou pensando mas acho que dá mais trabalho?? deixo aqui o script que estava pensando sem usar aqueles tipos de arquivos de salvar as configurações, eu acho que poderia ser melhor com esse tipo de salvamento tb para chamar as coisas depois ne ??
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CorPersonagem : MonoBehaviour
{
public GameObject[] BrancoMenino;
public GameObject[] PardoMenino;
public GameObject[] NegroMenino;
public GameObject[] BrancoMenina;
public GameObject[] PardoMenina;
public GameObject[] NegroMenina;
public bool tipoPersonagem;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
tipoPersonagem = GetComponent<selecaoPersonagem>().tipoMenino;
}
public void ChamaBranco()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(true);
}
for (int a = 0; a < PardoMenino.Length; a++)
{
PardoMenino[a].SetActive(false);
}
for (int b = 0; b < NegroMenino.Length; b++)
{
NegroMenino[b].SetActive(false);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(true);
}
for (int a = 0; a < PardoMenina.Length; a++)
{
PardoMenina[a].SetActive(false);
}
for (int b = 0; b < NegroMenina.Length; b++)
{
NegroMenina[b].SetActive(false);
}
}
}
public void ChamaPardo()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(false);
}
for (int a = 0; a < PardoMenino.Length; a++)
{
PardoMenino[a].SetActive(true);
}
for (int b = 0; b < NegroMenino.Length; b++)
{
NegroMenino[b].SetActive(false);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(false);
}
for (int a = 0; a < PardoMenina.Length; a++)
{
PardoMenina[a].SetActive(true);
}
for (int b = 0; b < NegroMenina.Length; b++)
{
NegroMenina[b].SetActive(false);
}
}
}
public void ChamaNegro()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(false);
}
for (int a = 0; a < PardoMenino.Length; a++)
{
PardoMenino[a].SetActive(false);
}
for (int b = 0; b < NegroMenino.Length; b++)
{
NegroMenino[b].SetActive(true);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(false);
}
for (int a = 0; a < PardoMenina.Length; a++)
{
PardoMenina[a].SetActive(false);
}
for (int b = 0; b < NegroMenina.Length; b++)
{
NegroMenina[b].SetActive(true);
}
}
}
}
Última edição por Magnatah em Sex Ago 09, 2019 7:06 pm, editado 1 vez(es) (Motivo da edição : Colocque os Script na Área de Scripts. (Ajuda Bastante Para Ambos os Lados))
lucaspoiob- Membro
- PONTOS : 2855
REPUTAÇÃO : 0
Respeito as regras :
Re: Fazer uma seleção de personagens e seguir para o jogo com o personagem escolhido
Esses Arrays Tem o Mesmo Tamanho?
Magnatah- Instrutor
- PONTOS : 3551
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Fazer uma seleção de personagens e seguir para o jogo com o personagem escolhido
Sim, eles tem o mesmo tamanho, pois cada array chama um personagem praticamente com as mesmas caracteristicasMagnatah escreveu:Esses Arrays Tem o Mesmo Tamanho?
lucaspoiob- Membro
- PONTOS : 2855
REPUTAÇÃO : 0
Respeito as regras :
Re: Fazer uma seleção de personagens e seguir para o jogo com o personagem escolhido
Se os Array tem o Mesmo Tamanho então não há necessidade de tantos "for".
- Código:
using UnityEngine;
public class CorPersonagem : MonoBehaviour
{
public GameObject[] BrancoMenino, PardoMenino, NegroMenino, BrancoMenina, PardoMenina, NegroMenina;
public bool tipoPersonagem;
void Update()
{
tipoPersonagem = GetComponent<selecaoPersonagem>().tipoMenino;
}
public void ChamaBranco()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(true);
PardoMenino[i].SetActive(false);
NegroMenino[i].SetActive(false);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(true);
PardoMenina[i].SetActive(false);
NegroMenina[i].SetActive(false);
}
}
}
public void ChamaPardo()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(false);
PardoMenino[i].SetActive(true);
NegroMenino[i].SetActive(false);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(false);
PardoMenina[i].SetActive(true);
NegroMenina[i].SetActive(false);
}
}
}
public void ChamaNegro()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(false);
PardoMenino[i].SetActive(false);
NegroMenino[i].SetActive(true);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(false);
PardoMenina[i].SetActive(false);
NegroMenina[i].SetActive(true);
}
}
}
}
Magnatah- Instrutor
- PONTOS : 3551
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Fazer uma seleção de personagens e seguir para o jogo com o personagem escolhido
Magnatah escreveu:Se os Array tem o Mesmo Tamanho então não há necessidade de tantos "for".
- Código:
using UnityEngine;
public class CorPersonagem : MonoBehaviour
{
public GameObject[] BrancoMenino, PardoMenino, NegroMenino, BrancoMenina, PardoMenina, NegroMenina;
public bool tipoPersonagem;
void Update()
{
tipoPersonagem = GetComponent<selecaoPersonagem>().tipoMenino;
}
public void ChamaBranco()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(true);
PardoMenino[i].SetActive(false);
NegroMenino[i].SetActive(false);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(true);
PardoMenina[i].SetActive(false);
NegroMenina[i].SetActive(false);
}
}
}
public void ChamaPardo()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(false);
PardoMenino[i].SetActive(true);
NegroMenino[i].SetActive(false);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(false);
PardoMenina[i].SetActive(true);
NegroMenina[i].SetActive(false);
}
}
}
public void ChamaNegro()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(false);
PardoMenino[i].SetActive(false);
NegroMenino[i].SetActive(true);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(false);
PardoMenina[i].SetActive(false);
NegroMenina[i].SetActive(true);
}
}
}
}
Desta forma os personagens já vem com a configuração da tela passada selecionado certinho, tipo se ele selecionar menino, só irá aparecer menino branco, pardo e negro e a mesma coisa se ele selecionar menina aparecera só as meninas branco, pardo e negra??? ele já puxa o que o jogador tinha seleciona na cena passada?? e se eu quiser selecionar o personagem quando for começar o jogo tipo ele selecionou menino branco ai tem que ter um gameobject para cada personagem no jogo tb e usar o setactive tb ne na hora que comecar o game ne??? acho que é a mesma lógica ne?
lucaspoiob- Membro
- PONTOS : 2855
REPUTAÇÃO : 0
Respeito as regras :
Re: Fazer uma seleção de personagens e seguir para o jogo com o personagem escolhido
Eu fiz daquela forma mais está dando um erro aqui: Object reference not set to an instance of an object CorPersonagem.Update()(at Assets/Telas Iniciais/Menu/CorPersonagem.cs:13)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CorPersonagem : MonoBehaviour
{
public GameObject[] BrancoMenino, PardoMenino, NegroMenino, BrancoMenina, PardoMenina, NegroMenina;
public bool tipoPersonagem;
void Update()
{
tipoPersonagem = GetComponent<selecaoPersonagem>().tipoMenino;
}
public void ChamaBranco()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(true);
PardoMenino[i].SetActive(false);
NegroMenino[i].SetActive(false);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(true);
PardoMenina[i].SetActive(false);
NegroMenina[i].SetActive(false);
}
}
}
public void ChamaPardo()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(false);
PardoMenino[i].SetActive(true);
NegroMenino[i].SetActive(false);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(false);
PardoMenina[i].SetActive(true);
NegroMenina[i].SetActive(false);
}
}
}
public void ChamaNegro()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(false);
PardoMenino[i].SetActive(false);
NegroMenino[i].SetActive(true);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(false);
PardoMenina[i].SetActive(false);
NegroMenina[i].SetActive(true);
}
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CorPersonagem : MonoBehaviour
{
public GameObject[] BrancoMenino, PardoMenino, NegroMenino, BrancoMenina, PardoMenina, NegroMenina;
public bool tipoPersonagem;
void Update()
{
tipoPersonagem = GetComponent<selecaoPersonagem>().tipoMenino;
}
public void ChamaBranco()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(true);
PardoMenino[i].SetActive(false);
NegroMenino[i].SetActive(false);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(true);
PardoMenina[i].SetActive(false);
NegroMenina[i].SetActive(false);
}
}
}
public void ChamaPardo()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(false);
PardoMenino[i].SetActive(true);
NegroMenino[i].SetActive(false);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(false);
PardoMenina[i].SetActive(true);
NegroMenina[i].SetActive(false);
}
}
}
public void ChamaNegro()
{
if (tipoPersonagem == true)
{
for (int i = 0; i < BrancoMenino.Length; i++)
{
BrancoMenino[i].SetActive(false);
PardoMenino[i].SetActive(false);
NegroMenino[i].SetActive(true);
}
}
else if (tipoPersonagem == false)
{
for (int i = 0; i < BrancoMenina.Length; i++)
{
BrancoMenina[i].SetActive(false);
PardoMenina[i].SetActive(false);
NegroMenina[i].SetActive(true);
}
}
}
}
lucaspoiob- Membro
- PONTOS : 2855
REPUTAÇÃO : 0
Respeito as regras :
Re: Fazer uma seleção de personagens e seguir para o jogo com o personagem escolhido
é por que você está fazendo um getcomponent (no update, o que já é ruim) de um codigo que não está associado no objeto.
Tópicos semelhantes
» como fazer sistema de seleção de personagem para moba no photon?
» Como posso fazer para camera seguir o personagem no eixo x e z?
» Alguém sabe fazer uma AI para o inimigo seguir o Player em um jogo Top Down
» FAZER UMA ARMA CRIADA SEGUIR AS ANIMAÇOES DO PERSONAGEM
» [RESOLVIDO] Como fazer o collider seguir a mao do personagem
» Como posso fazer para camera seguir o personagem no eixo x e z?
» Alguém sabe fazer uma AI para o inimigo seguir o Player em um jogo Top Down
» FAZER UMA ARMA CRIADA SEGUIR AS ANIMAÇOES DO PERSONAGEM
» [RESOLVIDO] Como fazer o collider seguir a mao do personagem
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos