[RESOLVIDO] Como Ativar Objeto Apenas na Frente Dele?
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Como Ativar Objeto Apenas na Frente Dele?
Então, voltei com os jogos agora, e eu preciso de ajuda com uma coisa, eu q n manjo nada e meu amigo q manja estamos sofrendo aq na unity pra fazer uma programação básica, resumindo, a programação é essa:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AcaoPia : MonoBehaviour
{
public GameObject teste;
public bool condition;
void Start()
{
condition = false;
}
void Update()
{
GetComponent<MeshRenderer>().enabled = condition;
if (Input.GetKeyDown(KeyCode.E))
{
condition = !condition;
}
}
}
Bem, resumindo, esse script se resume em, apertar ''E'' e a torneira sair ou parar de sair água. É Mais um detalhe do jogo, eu gosto de detalhes, porém, a gente demorou pra conseguir chegar nesse script, mas enfim, conseguimos e está funcionando.
porém, no momento a gente quer saber uma coisa básica q pra gente ta sendo um verdadeiro Inferno:
Como fazer pra ativar/desativar a água APENAS quando eu estiver na FRENTE da Pia?
Porque literalmente (e obviamente) estou conseguindo ativar a torneira em qualquer lugar da casa kkk
Quem puder ajudar eu fico grato ^-^
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AcaoPia : MonoBehaviour
{
public GameObject teste;
public bool condition;
void Start()
{
condition = false;
}
void Update()
{
GetComponent<MeshRenderer>().enabled = condition;
if (Input.GetKeyDown(KeyCode.E))
{
condition = !condition;
}
}
}
Bem, resumindo, esse script se resume em, apertar ''E'' e a torneira sair ou parar de sair água. É Mais um detalhe do jogo, eu gosto de detalhes, porém, a gente demorou pra conseguir chegar nesse script, mas enfim, conseguimos e está funcionando.
porém, no momento a gente quer saber uma coisa básica q pra gente ta sendo um verdadeiro Inferno:
Como fazer pra ativar/desativar a água APENAS quando eu estiver na FRENTE da Pia?
Porque literalmente (e obviamente) estou conseguindo ativar a torneira em qualquer lugar da casa kkk
Quem puder ajudar eu fico grato ^-^
Re: [RESOLVIDO] Como Ativar Objeto Apenas na Frente Dele?
Tente isto, deveria funcionar
Supondo que este script está no seu jogador, basta associar o objeto "pia" ou melhor, um objeto que está na posição da torneira da pia... ai quando você estiver em uma distância menor do que aquela estabelecida, o comando de input funciona.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AcaoPia : MonoBehaviour{
public GameObject pia;
public float distanciaMinima = 3;
[Space(10)]
public GameObject teste;
public bool condition;
void Start(){
condition = false;
}
void Update(){
float distanciaDaPia = Vector3.Distance (transform.position, pia.transform.position);
if (distanciaDaPia < distanciaMinima) {
if (Input.GetKeyDown (KeyCode.E)) {
condition = !condition;
//coloquei o get componente dentro do if, pois ele é um comando pesado para rodar o tempo todo
GetComponent<MeshRenderer> ().enabled = condition;
}
}
}
}
Supondo que este script está no seu jogador, basta associar o objeto "pia" ou melhor, um objeto que está na posição da torneira da pia... ai quando você estiver em uma distância menor do que aquela estabelecida, o comando de input funciona.
Re: [RESOLVIDO] Como Ativar Objeto Apenas na Frente Dele?
Obrigado, mas eu consegui depois de muito esforço, to conseguindo me virar já na programação Rs
o script que eu usei foi esse (Tem UI e Áudio)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AccPia : MonoBehaviour
{
public string _playerTag;
public AudioSource _audio;
private bool _playerEstaColidindo;
public bool condition;
public Text mensagemInteragir;
void Start()
{
_playerEstaColidindo = false;
_audio.Stop();
GetComponent<MeshRenderer>().enabled = false;
mensagemInteragir.enabled = false;
}
void Update()
{
GetComponent<MeshRenderer>().enabled = condition;
if (_playerEstaColidindo == true && Input.GetKeyDown(KeyCode.E))
{
condition = !condition;
if (condition == true)
{
_audio.Play();
}
else
{
_audio.Stop();
}
}
}
void OnTriggerEnter(Collider _col)
{
if (_col.gameObject.tag == _playerTag)
{
_playerEstaColidindo = true;
mensagemInteragir.enabled = true;
}
}
void OnTriggerExit(Collider _col)
{
if (_col.gameObject.tag == _playerTag)
{
_playerEstaColidindo = false;
mensagemInteragir.enabled = false;
}
}
}
o script que eu usei foi esse (Tem UI e Áudio)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AccPia : MonoBehaviour
{
public string _playerTag;
public AudioSource _audio;
private bool _playerEstaColidindo;
public bool condition;
public Text mensagemInteragir;
void Start()
{
_playerEstaColidindo = false;
_audio.Stop();
GetComponent<MeshRenderer>().enabled = false;
mensagemInteragir.enabled = false;
}
void Update()
{
GetComponent<MeshRenderer>().enabled = condition;
if (_playerEstaColidindo == true && Input.GetKeyDown(KeyCode.E))
{
condition = !condition;
if (condition == true)
{
_audio.Play();
}
else
{
_audio.Stop();
}
}
}
void OnTriggerEnter(Collider _col)
{
if (_col.gameObject.tag == _playerTag)
{
_playerEstaColidindo = true;
mensagemInteragir.enabled = true;
}
}
void OnTriggerExit(Collider _col)
{
if (_col.gameObject.tag == _playerTag)
{
_playerEstaColidindo = false;
mensagemInteragir.enabled = false;
}
}
}
Tópicos semelhantes
» [RESOLVIDO] como respawnar um objeto na minha frente?
» [RESOLVIDO] Como ativar e desativar um objeto.
» [Resolvido]Como faz pra ativar um "objeto" depois de um tempo
» [RESOLVIDO] Como ativar animação quando o objeto se move ?? sem rigidbody
» [RESOLVIDO] Como ativar uma câmera após coletar/destruir um objeto.
» [RESOLVIDO] Como ativar e desativar um objeto.
» [Resolvido]Como faz pra ativar um "objeto" depois de um tempo
» [RESOLVIDO] Como ativar animação quando o objeto se move ?? sem rigidbody
» [RESOLVIDO] Como ativar uma câmera após coletar/destruir um objeto.
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos