Ativar luz e objeto sumir
3 participantes
Página 1 de 1
Ativar luz e objeto sumir
Olá, alguém poderia me "helpar" com um pequeno Script? Uma dúvida que estou tendo, eu gostaria de fazer um sistema que envolve a light do jogo e um objeto, no caso, um monstro.
Sempre que eu apagar uma luz, o objeto aparece, e ao acender ele some.
Eu fiz esse pequeno script (apenas para desativar e ativar o monstro), quando eu clico com o botão do mouse ele some, mas não reaparece, e a luz também não reativa na maioria das vezes.. o Script da luz eu peguei de um tópico do forum.
O código deve ter alguns erros, por isso esse pedido de ajuda.
O Interruptor
Sempre que eu apagar uma luz, o objeto aparece, e ao acender ele some.
Eu fiz esse pequeno script (apenas para desativar e ativar o monstro), quando eu clico com o botão do mouse ele some, mas não reaparece, e a luz também não reativa na maioria das vezes.. o Script da luz eu peguei de um tópico do forum.
O código deve ter alguns erros, por isso esse pedido de ajuda.
- Código:
bool mouseDentro;
public Light luz;
public GameObject interruptor, monstro;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (mouseDentro == true)
{
}
if (Input.GetMouseButton(0))
{
if (luz.enabled == true) { }
monstro.SetActive(false);
}
else if (Input.GetMouseButton(0) && luz.enabled == false)
{
monstro.SetActive(true);
}
}
private void OnMouseEnter()
{
mouseDentro = true;
}
private void OnMouseExit()
{
mouseDentro = false;
}
}
O Interruptor
- Código:
[Header("Lights")]
public Light LuzQuarto;
private bool bolQuarto;
void Start()
{
bolQuarto = false;
}
void Update()
{
//Confirm
if (bolQuarto == true)
{
LuzQuarto.intensity = 1;
}
else
{
LuzQuarto.intensity = 0;
}
RaycastHit hit = new RaycastHit();
Vector3 dir = transform.TransformDirection(Vector3.forward);
if (Physics.Raycast(transform.position, dir, out hit, 3f))
{
if (Input.GetKeyDown(KeyCode.Mouse0))
{
//Quarto
if (hit.collider.gameObject.tag == "LGTQuarto")
{
bolQuarto = !bolQuarto;
}
}
}
}
}
Re: Ativar luz e objeto sumir
Você tá fazendo algumas verificações que não fazem sentido, por exemplo:
[list=linenums]
[*] if (mouseDentro == true)
[*] {
[*] }
[/list]
E pula pra outro if. Enquanto, acredito eu, deveria ser assim:
[list=linenums]
[*] if (mouseDentro == true)
[*] {
[*] if (Input.GetMouseButton(0) && luz.enabled) // luz.enabled é a mesma coisa do == true
[*] {
[*] monstro.SetActive(false);
[*] }
[*] else if (Input.GetMouseButton(0) && !luz.enabled) // !luz.enabled é a mesma coisa do == false
[*] {
[*] monstro.SetActive(true);
[*] }
[*] }
[/list]
[list=linenums]
[*] if (mouseDentro == true)
[*] {
[*] }
[/list]
E pula pra outro if. Enquanto, acredito eu, deveria ser assim:
[list=linenums]
[*] if (mouseDentro == true)
[*] {
[*] if (Input.GetMouseButton(0) && luz.enabled) // luz.enabled é a mesma coisa do == true
[*] {
[*] monstro.SetActive(false);
[*] }
[*] else if (Input.GetMouseButton(0) && !luz.enabled) // !luz.enabled é a mesma coisa do == false
[*] {
[*] monstro.SetActive(true);
[*] }
[*] }
[/list]
IDK- Iniciante
- PONTOS : 1274
REPUTAÇÃO : 1
Áreas de atuação : Unity, Godot (Ambos em 2D) e C#
Respeito as regras :
Re: Ativar luz e objeto sumir
[list=linenums]
[*]monstro.SetActive(!luz.enabled);
[/list]
solto no update deve funcionar '-
[*]monstro.SetActive(!luz.enabled);
[/list]
solto no update deve funcionar '-
Tópicos semelhantes
» ATIVAR UM OBJETO QUANDO PASSAR POR UM TRIGGER E SUMIR APÓS 3 SEGUNDOS
» Mudar cena ao ativar um objeto
» Sumir objeto com click do mouse
» Fazer objeto sumir após perda de contato com a imagem.
» [RESOLVIDO] como que faz para fazer o objeto sumir ao encostar
» Mudar cena ao ativar um objeto
» Sumir objeto com click do mouse
» Fazer objeto sumir após perda de contato com a imagem.
» [RESOLVIDO] como que faz para fazer o objeto sumir ao encostar
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos