Como criar inventário simples no unity
5 participantes
Página 1 de 1
Como criar inventário simples no unity
Opa, sou eu denovo aqui!
Então galera.. Eu queria saber como criar um inventário "simples" na Unity. Vou explicar melhor..
Eu queria que o inventário tivesse por exemplo 8 slots, e quando o player coletar um item do chão o tal item apareça no 1 slot e assim por diante. Se alguem puder me ensinar eu ficaria muito grato! Eu venho pensando em uma forma de fazer isso a tempos, mais não consigo pensar em nenhuma forma..
Obrigado pelo seu tempo!
Então galera.. Eu queria saber como criar um inventário "simples" na Unity. Vou explicar melhor..
Eu queria que o inventário tivesse por exemplo 8 slots, e quando o player coletar um item do chão o tal item apareça no 1 slot e assim por diante. Se alguem puder me ensinar eu ficaria muito grato! Eu venho pensando em uma forma de fazer isso a tempos, mais não consigo pensar em nenhuma forma..
Obrigado pelo seu tempo!
Re: Como criar inventário simples no unity
Eu sei de uma forma bem simples, mas não tem a parte de coletar itens implementada...marcos4503 escreveu:Opa, sou eu denovo aqui!
Então galera.. Eu queria saber como criar um inventário "simples" na Unity. Vou explicar melhor..
Eu queria que o inventário tivesse por exemplo 8 slots, e quando o player coletar um item do chão o tal item apareça no 1 slot e assim por diante. Se alguem puder me ensinar eu ficaria muito grato! Eu venho pensando em uma forma de fazer isso a tempos, mais não consigo pensar em nenhuma forma..
Obrigado pelo seu tempo!
mafipt- MembroAvançado
- PONTOS : 3603
REPUTAÇÃO : 54
Idade : 24
Áreas de atuação : C#, Java, PHP, JS, MySql, Multiplayer, Unity.
Respeito as regras :
Re: Como criar inventário simples no unity
Você poderia me mostrar para eu ver? Talvez eu possa implementar a parte de coletar itens!
Eu preciso de uma base sabe? Tipo.. por onde começar, pra eu ter uma ideia de como se fazer um inventário legal no unity!
Eu preciso de uma base sabe? Tipo.. por onde começar, pra eu ter uma ideia de como se fazer um inventário legal no unity!
Weslley- Moderador
- PONTOS : 5705
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Como criar inventário simples no unity
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
[System.Serializable]
public class ItemsManager
{
public int ID;
public string Name;
public string Description;
public Sprite Icon;
}
[System.Serializable]
public class SlotsManager
{
public int Number;
public int ItemID;
public Sprite Imagem;
public GameObject Slot;
}
public class InventorySystem : MonoBehaviour {
public int ClickedSlotNumber;
public ItemsManager[] Items;
public SlotsManager[] Slots;
public Sprite NullItem;
public bool ClickedItem;
public bool CreatedItem;
public GameObject MoveObject;
public void Start()
{
GameObject[] SSlots = new GameObject[Slots.Length];
for(int x = 0; x < SSlots.Length; x++)
{
SSlots[0] = GameObject.Find("Image (0)");
SSlots[1] = GameObject.Find("Image (1)");
SSlots[2] = GameObject.Find("Image (2)");
SSlots[3] = GameObject.Find("Image (3)");
SSlots[4] = GameObject.Find("Image (4)");
SSlots[5] = GameObject.Find("Image (5)");
SSlots[6] = GameObject.Find("Image (6)");
SSlots[7] = GameObject.Find("Image (7)");
SSlots[8] = GameObject.Find("Image (8)");
SSlots[9] = GameObject.Find("Image (9)");
SSlots[10] = GameObject.Find("Image (10)");
SSlots[11] = GameObject.Find("Image (11)");
SSlots[12] = GameObject.Find("Image (12)");
SSlots[13] = GameObject.Find("Image (13)");
SSlots[14] = GameObject.Find("Image (14)");
SSlots[15] = GameObject.Find("Image (15)");
SSlots[16] = GameObject.Find("Image (16)");
SSlots[17] = GameObject.Find("Image (17)");
SSlots[18] = GameObject.Find("Image (18)");
SSlots[19] = GameObject.Find("Image (19)");
SSlots[20] = GameObject.Find("Image (20)");
SSlots[21] = GameObject.Find("Image (21)");
SSlots[22] = GameObject.Find("Image (22)");
SSlots[23] = GameObject.Find("Image (23)");
SSlots[24] = GameObject.Find("Image (24)");
SSlots[25] = GameObject.Find("Image (25)");
SSlots[26] = GameObject.Find("Image (26)");
SSlots[27] = GameObject.Find("Image (27)");
}
for (int x = 0; x < Slots.Length; x++)
{
Slots[x].Slot = SSlots[x];
}
for(int x = 0; x < Slots.Length; x++)
{
Slots[x].Imagem = Items[Slots[x].ItemID].Icon;
Slots[x].Slot.GetComponent<Image>().sprite = Slots[x].Imagem;
}
}
public void Update()
{
for(int x = 0; x < Slots.Length; x++)
{
if (Slots[x].ItemID == 0)
{
Slots[x].Imagem = NullItem;
}
else
{
Slots[x].Imagem = Items[Slots[x].ItemID].Icon;
}
Slots[x].Slot.GetComponent<Image>().sprite = Slots[x].Imagem;
}
if(ClickedItem == true)
{
MoveObject.SetActive(true);
MoveObject.GetComponent<Image>().sprite = Slots[ClickedSlotNumber].Imagem;
MoveObject.transform.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
}
}
public void Clicked()
{
if (ClickedItem == false)
{
ClickedSlotNumber = int.Parse(this.name);
if (Slots[ClickedSlotNumber].ItemID > 0)
{
ClickedItem = true;
Slots[ClickedSlotNumber].Slot.gameObject.SetActive(false);
}
}
else
{
Slots[ClickedSlotNumber].Slot.gameObject.SetActive(true);
ClickedItem = false;
int ItemID1 = Slots[ClickedSlotNumber].ItemID;
Sprite Imagem1 = Slots[ClickedSlotNumber].Imagem;
int ClickedSlotNumber2 = int.Parse(this.name);
int ItemID2 = Slots[ClickedSlotNumber2].ItemID;
Sprite Imagem2 = Slots[ClickedSlotNumber2].Imagem;
Slots[ClickedSlotNumber].ItemID = ItemID2;
Slots[ClickedSlotNumber].Imagem = Imagem2;
Slots[ClickedSlotNumber2].ItemID = ItemID1;
Slots[ClickedSlotNumber2].Imagem = Imagem1;
CreatedItem = false;
MoveObject.SetActive(false);
}
}
}
mafipt- MembroAvançado
- PONTOS : 3603
REPUTAÇÃO : 54
Idade : 24
Áreas de atuação : C#, Java, PHP, JS, MySql, Multiplayer, Unity.
Respeito as regras :
Re: Como criar inventário simples no unity
Beleza :Dmarcos4503 escreveu:Puts! Obrigado ai, eu vou dar uma estudada!
mafipt- MembroAvançado
- PONTOS : 3603
REPUTAÇÃO : 54
Idade : 24
Áreas de atuação : C#, Java, PHP, JS, MySql, Multiplayer, Unity.
Respeito as regras :
Re: Como criar inventário simples no unity
voce pode me ajudar com esse scriptmafipt escreveu:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
[System.Serializable]
public class ItemsManager
{
public int ID;
public string Name;
public string Description;
public Sprite Icon;
}
[System.Serializable]
public class SlotsManager
{
public int Number;
public int ItemID;
public Sprite Imagem;
public GameObject Slot;
}
public class InventorySystem : MonoBehaviour {
public int ClickedSlotNumber;
public ItemsManager[] Items;
public SlotsManager[] Slots;
public Sprite NullItem;
public bool ClickedItem;
public bool CreatedItem;
public GameObject MoveObject;
public void Start()
{
GameObject[] SSlots = new GameObject[Slots.Length];
for(int x = 0; x < SSlots.Length; x++)
{
SSlots[0] = GameObject.Find("Image (0)");
SSlots[1] = GameObject.Find("Image (1)");
SSlots[2] = GameObject.Find("Image (2)");
SSlots[3] = GameObject.Find("Image (3)");
SSlots[4] = GameObject.Find("Image (4)");
SSlots[5] = GameObject.Find("Image (5)");
SSlots[6] = GameObject.Find("Image (6)");
SSlots[7] = GameObject.Find("Image (7)");
SSlots[8] = GameObject.Find("Image (8)");
SSlots[9] = GameObject.Find("Image (9)");
SSlots[10] = GameObject.Find("Image (10)");
SSlots[11] = GameObject.Find("Image (11)");
SSlots[12] = GameObject.Find("Image (12)");
SSlots[13] = GameObject.Find("Image (13)");
SSlots[14] = GameObject.Find("Image (14)");
SSlots[15] = GameObject.Find("Image (15)");
SSlots[16] = GameObject.Find("Image (16)");
SSlots[17] = GameObject.Find("Image (17)");
SSlots[18] = GameObject.Find("Image (18)");
SSlots[19] = GameObject.Find("Image (19)");
SSlots[20] = GameObject.Find("Image (20)");
SSlots[21] = GameObject.Find("Image (21)");
SSlots[22] = GameObject.Find("Image (22)");
SSlots[23] = GameObject.Find("Image (23)");
SSlots[24] = GameObject.Find("Image (24)");
SSlots[25] = GameObject.Find("Image (25)");
SSlots[26] = GameObject.Find("Image (26)");
SSlots[27] = GameObject.Find("Image (27)");
}
for (int x = 0; x < Slots.Length; x++)
{
Slots[x].Slot = SSlots[x];
}
for(int x = 0; x < Slots.Length; x++)
{
Slots[x].Imagem = Items[Slots[x].ItemID].Icon;
Slots[x].Slot.GetComponent<Image>().sprite = Slots[x].Imagem;
}
}
public void Update()
{
for(int x = 0; x < Slots.Length; x++)
{
if (Slots[x].ItemID == 0)
{
Slots[x].Imagem = NullItem;
}
else
{
Slots[x].Imagem = Items[Slots[x].ItemID].Icon;
}
Slots[x].Slot.GetComponent<Image>().sprite = Slots[x].Imagem;
}
if(ClickedItem == true)
{
MoveObject.SetActive(true);
MoveObject.GetComponent<Image>().sprite = Slots[ClickedSlotNumber].Imagem;
MoveObject.transform.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
}
}
public void Clicked()
{
if (ClickedItem == false)
{
ClickedSlotNumber = int.Parse(this.name);
if (Slots[ClickedSlotNumber].ItemID > 0)
{
ClickedItem = true;
Slots[ClickedSlotNumber].Slot.gameObject.SetActive(false);
}
}
else
{
Slots[ClickedSlotNumber].Slot.gameObject.SetActive(true);
ClickedItem = false;
int ItemID1 = Slots[ClickedSlotNumber].ItemID;
Sprite Imagem1 = Slots[ClickedSlotNumber].Imagem;
int ClickedSlotNumber2 = int.Parse(this.name);
int ItemID2 = Slots[ClickedSlotNumber2].ItemID;
Sprite Imagem2 = Slots[ClickedSlotNumber2].Imagem;
Slots[ClickedSlotNumber].ItemID = ItemID2;
Slots[ClickedSlotNumber].Imagem = Imagem2;
Slots[ClickedSlotNumber2].ItemID = ItemID1;
Slots[ClickedSlotNumber2].Imagem = Imagem1;
CreatedItem = false;
MoveObject.SetActive(false);
}
}
}
PatifeCraft- Avançado
- PONTOS : 2847
REPUTAÇÃO : 6
Respeito as regras :
Re: Como criar inventário simples no unity
eu diria que esse script é no mínimo estranho
Qual o sentido de usar um for se você está setando um monte de indices na mão dentro do próprio for?
Qual o sentido de usar um for se você está setando um monte de indices na mão dentro do próprio for?
Re: Como criar inventário simples no unity
como assimMarcosSchultz escreveu:eu diria que esse script é no mínimo estranho
Qual o sentido de usar um for se você está setando um monte de indices na mão dentro do próprio for?
PatifeCraft- Avançado
- PONTOS : 2847
REPUTAÇÃO : 6
Respeito as regras :
Re: Como criar inventário simples no unity
na void Start tem um for gigante que seta indice por indice na mão... qual a moral daquele for ali? não faz sentido nenhum
Re: Como criar inventário simples no unity
ata agora entendi, e que eu to começando com script faz pouco tempoMarcosSchultz escreveu:na void Start tem um for gigante que seta indice por indice na mão... qual a moral daquele for ali? não faz sentido nenhum
PatifeCraft- Avançado
- PONTOS : 2847
REPUTAÇÃO : 6
Respeito as regras :
Tópicos semelhantes
» Como criar um sistema de Ranking simples.
» Como posso verificar um simples inventario de arma ?
» COMO CRIAR UM SHOP E INVENTÁRIO COMO O DOS JOGOS DE FPS ?
» Alguem Pode Me Ajudar como uma duvida "SIMPLES" de inventario ???? Pf
» COMO CRIAR UM INVENTARIO COM HOTBAR
» Como posso verificar um simples inventario de arma ?
» COMO CRIAR UM SHOP E INVENTÁRIO COMO O DOS JOGOS DE FPS ?
» Alguem Pode Me Ajudar como uma duvida "SIMPLES" de inventario ???? Pf
» COMO CRIAR UM INVENTARIO COM HOTBAR
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos