[RESOLVIDO] menu de troca de itens!!
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] menu de troca de itens!!
bom dia a tds!!
por favor como posso fazer um menu de escolha conforme foto abaixo?
porem nao pode ser em cena separada precisa ser na msm cena do jogo por favor!!
https://drive.google.com/file/d/1_IalFO77Kkwzf0pkKwvWVGIMHwhkdlJh/view?usp=sharing
obg a tds!!
por favor como posso fazer um menu de escolha conforme foto abaixo?
porem nao pode ser em cena separada precisa ser na msm cena do jogo por favor!!
https://drive.google.com/file/d/1_IalFO77Kkwzf0pkKwvWVGIMHwhkdlJh/view?usp=sharing
obg a tds!!
Última edição por dstaroski em Ter maio 17, 2022 10:15 pm, editado 1 vez(es) (Motivo da edição : Resolvido)
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Primeiro você teria que criar uma array com todos os itens na ordem que voce quer, e então associar este item a imagem que você quer visualiza-lo, vendo a imagem que você mandou, creio que a visualização do item seja na parte do centro a qual tem um circulo. Depois de voce criar esta array, agora fica bem simples o processo, por exemplo usando sprite.
No botão de flecha que vai pra o próximo sprite voce cria uma int que iria aumentar o index e então associa ele a array, por exemplo:
No botão de flecha que vai pra o próximo sprite voce cria uma int que iria aumentar o index e então associa ele a array, por exemplo:
- Código:
public Image itenView; //imagem visualizador dos itens
public Sprite[] itens;
int index = 0;
public void NextSprite() //void que voce coloca como função do botão de próximo
{
index +=1;
if(index == itens.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itemView.sprite = itens[index];
}
public void BackSprite() //void que voce coloca como função do botão de volta
{
index -=1;
if(index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens.Length-1;
}
itemView.sprite = itens[index];
}
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Pokedlg escreveu:Primeiro você teria que criar uma array com todos os itens na ordem que voce quer, e então associar este item a imagem que você quer visualiza-lo, vendo a imagem que você mandou, creio que a visualização do item seja na parte do centro a qual tem um circulo. Depois de voce criar esta array, agora fica bem simples o processo, por exemplo usando sprite.
No botão de flecha que vai pra o próximo sprite voce cria uma int que iria aumentar o index e então associa ele a array, por exemplo:
- Código:
public Image itenView; //imagem visualizador dos itens
public Sprite[] itens;
int index = 0;
public void NextSprite() //void que voce coloca como função do botão de próximo
{
index +=1;
if(index == itens.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itemView.sprite = itens[index];
}
public void BackSprite() //void que voce coloca como função do botão de volta
{
index -=1;
if(index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens.Length-1;
}
itemView.sprite = itens[index];
}
Opa show de bola amigo ,só q assim tipo meus ícones seriam imagens ui pq esses botões ao clicarem nele seriam instanciados coisas na frente do player cada imagem ui tem um evento trigger, e muito difícil? Muda muito c esse seu código ? Muito obg pela ajuda !
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Olha, se eu entendi bem, voce quis dizer que no lugar do Sprite seria Imagens, se for, nao mudaria praticamente nada, no lugar da array Sprites voce trocava por uma array de imagens.
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
E exatamente isso , só q parece q não é aceito array de imagens pelo menos tentei na classe, aceitou direitinho sem nenhum erro , coloquei o script tanto no canvas qt em algum objeto no canvas e no script não aparece a array , parece q ignora quando é array de imagens !Pokedlg escreveu:Olha, se eu entendi bem, voce quis dizer que no lugar do Sprite seria Imagens, se for, nao mudaria praticamente nada, no lugar da array Sprites voce trocava por uma array de imagens.
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Como voce fez o script? Voce coloco uma array em uma classe separada? Poderia mandar para averiguar o que pode estar causando o problema
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Desculpa demora vou deixar so o basico do meu script p n ficar confuso , mas se eu crio uma array de objetos la na unity aparece no script p eu selecionar quantos obejtos quero e aponta los, ja com buttons nao aparece a array!!Pokedlg escreveu:Como voce fez o script? Voce coloco uma array em uma classe separada? Poderia mandar para averiguar o que pode estar causando o problema
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public class itens : MonoBehaviour
{
public Button[] botoes; -------
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void trocarItens(int itens)
{
}
}
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Não tenho certeza, mas acho que seria pq voce está usando UnityEngine.UIElements. O certo seria utilizar o UnityEngine.UI;, pois o UnityEngine.UIElements é utilizado para apenas editores customizados.
Tente assim:
Tente assim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class itens : MonoBehaviour
{
public Button[] botoes;
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void trocarItens(int itens)
{
}
}
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Tentei seu codigo mas da um erro em itemView.sprite = itens1[index]; itemView nao existe no contextoPokedlg escreveu:Primeiro você teria que criar uma array com todos os itens na ordem que voce quer, e então associar este item a imagem que você quer visualiza-lo, vendo a imagem que você mandou, creio que a visualização do item seja na parte do centro a qual tem um circulo. Depois de voce criar esta array, agora fica bem simples o processo, por exemplo usando sprite.
No botão de flecha que vai pra o próximo sprite voce cria uma int que iria aumentar o index e então associa ele a array, por exemplo:
- Código:
public Image itenView; //imagem visualizador dos itens
public Sprite[] itens;
int index = 0;
public void NextSprite() //void que voce coloca como função do botão de próximo
{
index +=1;
if(index == itens.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itemView.sprite = itens[index];
}
public void BackSprite() //void que voce coloca como função do botão de volta
{
index -=1;
if(index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens.Length-1;
}
itemView.sprite = itens[index];
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public class itens : MonoBehaviour
{
public GameObject itenView; //imagem visualizador dos itens
public Sprite[] itens1;
int index = 0;
public void NextSprite() //void que voce coloca como função do botão de próximo
{
index += 1;
if (index == itens1.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itemView.sprite = itens1[index]; ----
}
public void BackSprite() //void que voce coloca como função do botão de volta
{
index -= 1;
if (index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens1.Length - 1;
}
itemView.sprite = itens1[index]; -----
}
}
MUITO OBG PELA AJUDA!!
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Se eu tento usarcapim22 escreveu:Tentei seu codigo mas da um erro em itemView.sprite = itens1[index]; itemView nao existe no contextoPokedlg escreveu:Primeiro você teria que criar uma array com todos os itens na ordem que voce quer, e então associar este item a imagem que você quer visualiza-lo, vendo a imagem que você mandou, creio que a visualização do item seja na parte do centro a qual tem um circulo. Depois de voce criar esta array, agora fica bem simples o processo, por exemplo usando sprite.
No botão de flecha que vai pra o próximo sprite voce cria uma int que iria aumentar o index e então associa ele a array, por exemplo:
- Código:
public Image itenView; //imagem visualizador dos itens
public Sprite[] itens;
int index = 0;
public void NextSprite() //void que voce coloca como função do botão de próximo
{
index +=1;
if(index == itens.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itemView.sprite = itens[index];
}
public void BackSprite() //void que voce coloca como função do botão de volta
{
index -=1;
if(index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens.Length-1;
}
itemView.sprite = itens[index];
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public class itens : MonoBehaviour
{
public GameObject itenView; //imagem visualizador dos itens
public Sprite[] itens1;
int index = 0;
public void NextSprite() //void que voce coloca como função do botão de próximo
{
index += 1;
if (index == itens1.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itemView.sprite = itens1[index]; ----
}
public void BackSprite() //void que voce coloca como função do botão de volta
{
index -= 1;
if (index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens1.Length - 1;
}
itemView.sprite = itens1[index]; -----
}
}
MUITO OBG PELA AJUDA!!
[list=linenums][*]using UnityEngine.UI; fica apresentabndo erro o uso da diretiva e desnecessario !
[/list]
so aceita using UnityEngine.UIElements;
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
É porque voce nao atribuiu a imagem a variável. No caso eu coloquei o nome dela de itenView que seria o visualizador dos itens que ia mudando (No inspector arrasta a imagem que serve como visualizador dos itens até o local da variável itenview). Por exemplo:
Se voce cria um canvas e adiciona uma UI imagem, o que definirá imagem em si seria o sprite, sendo assim, com uma imagem voce porderia trocar por diversos sprites, nao precisaria criar uma imagem para cada item.
Onde vai o Sprite:
Se voce cria um canvas e adiciona uma UI imagem, o que definirá imagem em si seria o sprite, sendo assim, com uma imagem voce porderia trocar por diversos sprites, nao precisaria criar uma imagem para cada item.
Onde vai o Sprite:
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Entao mas o erro da no codigo , ja fica ate o aviso em vermelho na unity , antes de eu por a imagem ja fica o erro!!Pokedlg escreveu:É porque voce nao atribuiu a imagem a variável. No caso eu coloquei o nome dela de itenView que seria o visualizador dos itens que ia mudando (No inspector arrasta a imagem que serve como visualizador dos itens até o local da variável itenview). Por exemplo:
Se voce cria um canvas e adiciona uma UI imagem, o que definirá imagem em si seria o sprite, sendo assim, com uma imagem voce porderia trocar por diversos sprites, nao precisaria criar uma imagem para cada item.
Onde vai o Sprite:
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Assim kk, é que a variável está escrita item com N "iten" porque ta inglês, e ao voce escrever itenView, voce escreveu com M
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Tente assim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public class itens : MonoBehaviour
{
public GameObject itemView; //imagem visualizador dos itens
public Sprite[] itens1;
int index = 0;
public void NextSprite() //void que voce coloca como função do botão de próximo
{
index += 1;
if (index == itens1.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itemView.sprite = itens1[index]; ----
}
public void BackSprite() //void que voce coloca como função do botão de volta
{
index -= 1;
if (index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens1.Length - 1;
}
itemView.sprite = itens1[index]; -----
}
}
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Desculpa eu estar sendo chatoPokedlg escreveu:Tente assim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public class itens : MonoBehaviour
{
public GameObject itemView; //imagem visualizador dos itens
public Sprite[] itens1;
int index = 0;
public void NextSprite() //void que voce coloca como função do botão de próximo
{
index += 1;
if (index == itens1.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itemView.sprite = itens1[index]; ----
}
public void BackSprite() //void que voce coloca como função do botão de volta
{
index -= 1;
if (index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens1.Length - 1;
}
itemView.sprite = itens1[index]; -----
}
}
mas tentei
public GameObject itemView; //imagem visualizador dos itens
public Sprite[] itens1;
int index = 0;
public void NextSprite() //void que voce coloca como função do botão de próximo
{
index += 1;
if (index == itens1.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itemView.sprite = itens1[index]; da erro em sprite = GameObject nao contem uma definicao para sprite!!
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Q nada, é com as duvidas que a gente aprende, sempre é bom perguntar .
Acontece que voce definiu o itemView como GameObject;
tente deixá-lo assim:
Acontece que voce definiu o itemView como GameObject;
tente deixá-lo assim:
- Código:
public Image itemView;
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
kkk obg!Pokedlg escreveu:Q nada, é com as duvidas que a gente aprende, sempre é bom perguntar .
Acontece que voce definiu o itemView como GameObject;
tente deixá-lo assim:
- Código:
public Image itemView;
Acabei de tentar e o msm erro do sprite
public Image itemView;
itemView.sprite = itens1[index]; --- da erro sprite nao contem uma definicao para sprite!!
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Opa, desculpa a demora tive q da uma saída. Daqui a pouco vou mandar um video mostrando como prosseguir
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Pokedlg escreveu:
Opa amigo obg pelo vídeo, então qt aos botões funcionarem até sei fazer o evento triager e tal o problema msm está sendo aquela parte do erro no script ainda N descobri vc tem o código desse vídeo?
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
É o mesmo que mandei anteriormente, este é o código:
Acho, que sei o que pode ser, talvez voce nao transformou as imagens em sprite, quando voce importa uma imagem para o unity você tem q clicar nela e selecionar para "Sprite (2D and UI)"
Caso nao for voce poderia mandar o script denovo, vc trocou o gameobject por image?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class itens : MonoBehaviour
{
public Image itemView; //imagem visualizador dos itens
public Sprite[] itens1;
int index = 0;
public void NextSprite() //void que voce coloca como função do botão de próximo
{
index += 1;
if (index == itens1.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itemView.sprite = itens1[index];
}
public void BackSprite() //void que voce coloca como função do botão de volta
{
index -= 1;
if (index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens1.Length - 1;
}
itemView.sprite = itens1[index];
}
}
Acho, que sei o que pode ser, talvez voce nao transformou as imagens em sprite, quando voce importa uma imagem para o unity você tem q clicar nela e selecionar para "Sprite (2D and UI)"
Caso nao for voce poderia mandar o script denovo, vc trocou o gameobject por image?
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Opa bom dia tive q apagar 2 arquivos em meu projeto q estavam atrapalhando a questao do UI; agora aceita e deu certo seu script , muitissimo obg , so mais uma utima pergunta no caso eu iria por ao invez de sprites , eu iria colocar imagens do UI pq cada imagem vai carregar um event trigger pois ao clicar em algumas dessas iamgens sera instanciado objetos em frente ao player , eu ja tenho a logica pronta , so preciso saber como por essas imagens na array ao invez de sprites tentei button mas da erro !Pokedlg escreveu:É o mesmo que mandei anteriormente, este é o código:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class itens : MonoBehaviour
{
public Image itemView; //imagem visualizador dos itens
public Sprite[] itens1;
int index = 0;
public void NextSprite() //void que voce coloca como função do botão de próximo
{
index += 1;
if (index == itens1.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itemView.sprite = itens1[index];
}
public void BackSprite() //void que voce coloca como função do botão de volta
{
index -= 1;
if (index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens1.Length - 1;
}
itemView.sprite = itens1[index];
}
}
Acho, que sei o que pode ser, talvez voce nao transformou as imagens em sprite, quando voce importa uma imagem para o unity você tem q clicar nela e selecionar para "Sprite (2D and UI)"
Caso nao for voce poderia mandar o script denovo, vc trocou o gameobject por image?
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Acredito que você teria que criar um Prefab ou GameObject para cada imagem com seus respectivos Trigger Events e em vez de Sprites mudar a array para GameObjects:
E no lugar da Imagem que serve como visualizadora para os itens, voce poderia excluí-la, mas criasse um Empty para servir como pai do GameObject...
Porém eu particularmente optaria pela utilização dos sprites, e conforme avança ou volta na visualização, ele identifica o id do item e ao clicar na imagem com um Event Trigger ele mandaria o index do item para uma array de prefabs e assim instanciá-lo, ou caso nao queira criar uma array a mais, conforme muda o index, iria atualizando para diferentes Triggers Events Dinamicamente.
- Código:
public GameObject[] itens1;
E no lugar da Imagem que serve como visualizadora para os itens, voce poderia excluí-la, mas criasse um Empty para servir como pai do GameObject...
Porém eu particularmente optaria pela utilização dos sprites, e conforme avança ou volta na visualização, ele identifica o id do item e ao clicar na imagem com um Event Trigger ele mandaria o index do item para uma array de prefabs e assim instanciá-lo, ou caso nao queira criar uma array a mais, conforme muda o index, iria atualizando para diferentes Triggers Events Dinamicamente.
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Entao no meu jogo eu ja uso imagens com eventTrigger para instanciar obejtos na frente do player eles ja funcionam porem estao todos ja na tela por isso quero fazer esse sistema de escolha mas n sei cm fazer para a imagem clicada funcionar , pq uso imagens do UI e sprite nao da para add componentes !!Pokedlg escreveu:Acredito que você teria que criar um Prefab ou GameObject para cada imagem com seus respectivos Trigger Events e em vez de Sprites mudar a array para GameObjects:
- Código:
public GameObject[] itens1;
E no lugar da Imagem que serve como visualizadora para os itens, voce poderia excluí-la, mas criasse um Empty para servir como pai do GameObject...
Porém eu particularmente optaria pela utilização dos sprites, e conforme avança ou volta na visualização, ele identifica o id do item e ao clicar na imagem com um Event Trigger ele mandaria o index do item para uma array de prefabs e assim instanciá-lo, ou caso nao queira criar uma array a mais, conforme muda o index, iria atualizando para diferentes Triggers Events Dinamicamente.
obg pela ajuda!!
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Então, voce cria um GameObject de Imagens para cada item e adiciona a eles o Trigger Event com a função que você quer que faça ao clicar, e depois troque aquela array de Sprites, por uma array de Gameobjects e conforme avança ou volta o item voce desativa e ativa de acordo com o index atual.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ItemSelect : MonoBehaviour
{
public GameObject[] itens1; //array das imagens de itens que voce ira criar
int index = 0;
public void NextItem() //void que voce coloca como função do botão de próximo
{
foreach(GameObject item in itens1) //foreach para desativar todos gameojects
{
item.SetActive(false);
}
index += 1;
if (index == itens1.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itens1[index].SetActive(true); //ativa apenas o gameobject que corresponde ao index
}
public void BackItem() //void que voce coloca como função do botão de volta
{
foreach(GameObject item in itens1)
{
item.SetActive(false);
}
index -= 1;
if (index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens1.Length - 1;
}
itens1[index].SetActive(true); //ativa apenas o gameobject que corresponde ao index
}
///// VOIDS UTILIZADAS COMO FUNÇÕES DOS TRIGGER EVENTS ////////
public void Axe()
{
Debug.Log("Get Axe");
}
public void HealthPotion()
{
Debug.Log("Use Potion: +25 health");
}
public void PowerPotion()
{
Debug.Log("Use Power Potion: +25 power");
}
public void Chocolate()
{
Debug.Log("Eat Chocolate: -10 hungry");
}
}
Como voce pode ver no video cada imagem clicada aparece algo escrito diferente no console, pois cada imagem tem seus respectivos trigger events.
Dnd qualquer coisa é só perguntar
Pokedlg- ProgramadorMaster
- PONTOS : 2270
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [RESOLVIDO] menu de troca de itens!!
Boa noite desculpa demora , cara era exatamente isso deu certíssimo muito obg pela ajuda e paciência cmg!!Pokedlg escreveu:
Então, voce cria um GameObject de Imagens para cada item e adiciona a eles o Trigger Event com a função que você quer que faça ao clicar, e depois troque aquela array de Sprites, por uma array de Gameobjects e conforme avança ou volta o item voce desativa e ativa de acordo com o index atual.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ItemSelect : MonoBehaviour
{
public GameObject[] itens1; //array das imagens de itens que voce ira criar
int index = 0;
public void NextItem() //void que voce coloca como função do botão de próximo
{
foreach(GameObject item in itens1) //foreach para desativar todos gameojects
{
item.SetActive(false);
}
index += 1;
if (index == itens1.Length) //verifica quando ultrapassa o limite da array para voltar ao começo
{
index = 0;
}
itens1[index].SetActive(true); //ativa apenas o gameobject que corresponde ao index
}
public void BackItem() //void que voce coloca como função do botão de volta
{
foreach(GameObject item in itens1)
{
item.SetActive(false);
}
index -= 1;
if (index < 0) //verifica quando fica menor que 0 na array para voltar ao final
{
index = itens1.Length - 1;
}
itens1[index].SetActive(true); //ativa apenas o gameobject que corresponde ao index
}
///// VOIDS UTILIZADAS COMO FUNÇÕES DOS TRIGGER EVENTS ////////
public void Axe()
{
Debug.Log("Get Axe");
}
public void HealthPotion()
{
Debug.Log("Use Potion: +25 health");
}
public void PowerPotion()
{
Debug.Log("Use Power Potion: +25 power");
}
public void Chocolate()
{
Debug.Log("Eat Chocolate: -10 hungry");
}
}
Como voce pode ver no video cada imagem clicada aparece algo escrito diferente no console, pois cada imagem tem seus respectivos trigger events.
Dnd qualquer coisa é só perguntar
capim22- Avançado
- PONTOS : 1978
REPUTAÇÃO : 20
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Troca de câmeras
» [RESOLVIDO] Script de Informações de itens
» [RESOLVIDO] Problema no menu
» [RESOLVIDO] Como deixar borda nos itens?
» [RESOLVIDO] Como salvar itens da fase?
» [RESOLVIDO] Script de Informações de itens
» [RESOLVIDO] Problema no menu
» [RESOLVIDO] Como deixar borda nos itens?
» [RESOLVIDO] Como salvar itens da fase?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos