Estou fazendo um sistema de inventário bem muitos para meu jogo point and click no qual tenho poucos itens e criei um item "Item1" que é uma chave e coloquei o seguinte código:
bool Chave1Inv = false;
bool invActive;
public GameObject Item1;
void Update()
{ if (Chave1Inv == true){
Item1.SetActive(invActive);
}
}
A expectativa era que se a variável Chave1Inv se true, o item estava no inventário do player, e se false, não. invActive dizia se o inventário estava aberto ( visível na tela do player) e se estivesse e se o item estava no inventário do player ele deveria aparecer ( Item1.SetActive(invActive) ). invActive é um valor booleno que dirá ao SetActive se é para ele tornar o Item1 ( Minha Chave) ativo.
Mas quando clica na chave (já criei o comando que diz se a chave foi clica tornar Chave1Inv = true (Já declarei todas as variáveis anteriormente)
{
if (slotA == false){
transform.position = new Vector3(277,265);
Chave1Inv = true;
slotA = true;
}else{ if (slotB == false){
transform.position = new Vector3(60,62);
Chave1Inv = true;
slotB = true;
} else { if (slotC ==false){
transform.position = new Vector3(-60,-51);
Chave1Inv = true;
slotC = true;
} else {
transform.position = new Vector3(60,-51);
Chave1Inv = true;
slotD = true;
}
}
}
}
Depois alguns testes cheguei a conclusão que quando eu colocava o comando :
{ if (Chave1Inv == true){
Item1.SetActive(invActive);
}
Ele não funcionava, não se porque o comando não funciona em alguma circunstância ou se Chave1Inv não estava tendo seu valor atribuido a true. Peço que alguém possa me ajudar a resolver esse problema. Obrigado!