[RESOLVIDO] SetActive não esta funcionando com condiçoes if
4 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] SetActive não esta funcionando com condiçoes if
boa tarde amigos, novamente mais problemas com script kkk
eu estava pensando em uma logica que quando uma bool for verdadeira&&falsa o objeto ser desativado, e dependendo da condição, ser ativado novamente
ele desativa, tudo ok por ai, porem não ativa novamente
eu estava pensando em uma logica que quando uma bool for verdadeira&&falsa o objeto ser desativado, e dependendo da condição, ser ativado novamente
ele desativa, tudo ok por ai, porem não ativa novamente
- Código:
public class morreu : MonoBehaviour
{
public GameObject jogador;
gameover myscript;
reiniciar scriptu;
// Start is called before the first frame update
void Start()
{
myscript = GetComponent<gameover>();
gameover.morreu = false;
scriptu = GetComponent<reiniciar>();
}
// Update is called once per frame
void Update()
{
if (gameover.morreu==true)
{
jogador.SetActive(false);
}
else if (gameover.morreu== false && reiniciar.rein == true)
{
jogador.SetActive(true);
}
}
}
nvndx- Membro
- PONTOS : 1970
REPUTAÇÃO : 2
Idade : 22
Respeito as regras :
Re: [RESOLVIDO] SetActive não esta funcionando com condiçoes if
Você criou duas variáveis(myscript e scriptu) de tipos inexistentes, se ambas forem classes, provavelmente escreveu os nomes errados.nvndx escreveu:boa tarde amigos, novamente mais problemas com script kkk
eu estava pensando em uma logica que quando uma bool for verdadeira&&falsa o objeto ser desativado, e dependendo da condição, ser ativado novamente
ele desativa, tudo ok por ai, porem não ativa novamente
- Código:
public class morreu : MonoBehaviour
{
public GameObject jogador;
gameover myscript;
reiniciar scriptu;
// Start is called before the first frame update
void Start()
{
myscript = GetComponent<gameover>();
gameover.morreu = false;
scriptu = GetComponent<reiniciar>();
}
// Update is called once per frame
void Update()
{
if (gameover.morreu==true)
{
jogador.SetActive(false);
}
else if (gameover.morreu== false && reiniciar.rein == true)
{
jogador.SetActive(true);
}
}
}
endersoneneilsa- Membro
- PONTOS : 2760
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] SetActive não esta funcionando com condiçoes if
Provavelmente o script morreu está no objeto Jogador, por isso ele não se ativa de volta: como o script vai ser chamado em um objeto que foi desativado?
Ah, se não for isso, tenta mandar os scripts que influenciam no gameover.morreu e reiniciar.rein..
Ah, se não for isso, tenta mandar os scripts que influenciam no gameover.morreu e reiniciar.rein..
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] SetActive não esta funcionando com condiçoes if
Nossa cara realmente, fui muito ilógico nesse caso kkkkNKKF escreveu:Provavelmente o script morreu está no objeto Jogador, por isso ele não se ativa de volta: como o script vai ser chamado em um objeto que foi desativado?
Ah, se não for isso, tenta mandar os scripts que influenciam no gameover.morreu e reiniciar.rein..
Quando der eu vou testar,mas provavelmente o problema é esse
NKKF salvando meus projetos
nvndx- Membro
- PONTOS : 1970
REPUTAÇÃO : 2
Idade : 22
Respeito as regras :
Re: [RESOLVIDO] SetActive não esta funcionando com condiçoes if
No caso, se esse Script morreu está dentro do Player, então já não iria precisar de uma variável "Jogador" já que ela (classe morreu) já está dentro do jogador, você pode chamar com this.gameObject.
Exemplo:
Se você quer só que ele suma da tela (não dando para ver mais).
Você pode pegar o Renderer dele e desabilitar.
Se for 2D pode ser o SpriteRenderer.
E se não quiser que outros objetos colidam com o agora "Jogador Invisível" é só desabilitar os colisores.
Depois é só habilitar tudo de novo, assim sem desativar o objeto o script não para de rodar como era o caso anterior.
Exemplo:
- Código:
this.gameObject.SetActive(false);
Se você quer só que ele suma da tela (não dando para ver mais).
Você pode pegar o Renderer dele e desabilitar.
- Código:
Renderer myRenderer = GetComponent<Renderer>();
myRenderer.enabled = false;
Se for 2D pode ser o SpriteRenderer.
E se não quiser que outros objetos colidam com o agora "Jogador Invisível" é só desabilitar os colisores.
- Código:
Collider meuColisor = GetComponent<Collider>();
meuColisor.enabled = false;
Depois é só habilitar tudo de novo, assim sem desativar o objeto o script não para de rodar como era o caso anterior.
Kleber Lucas- Iniciante
- PONTOS : 1786
REPUTAÇÃO : 5
Idade : 27
Áreas de atuação : Programação e Game Design
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Dúvida com SetActive
» [RESOLVIDO] SetActive Enabled etc #DUVIDA
» [RESOLVIDO] Usando o SetActive para reativar um GameObject, ajuda!
» [RESOLVIDO] Não está instanciando
» [RESOLVIDO]NÃO ESTA PEGANDO MENU??
» [RESOLVIDO] SetActive Enabled etc #DUVIDA
» [RESOLVIDO] Usando o SetActive para reativar um GameObject, ajuda!
» [RESOLVIDO] Não está instanciando
» [RESOLVIDO]NÃO ESTA PEGANDO MENU??
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos