Imagem Aparecer como pergunta
3 participantes
Página 1 de 1
Imagem Aparecer como pergunta
Boa tarde. Estou com uma dúvida de como fazer uma imagem aparecer como pergunta e só aparecer quando o personagem apertar Enter e estiver na área de colisão com o NPC. Alguém poderia me ajudar?
Pedro Marquesini- Iniciante
- PONTOS : 2224
REPUTAÇÃO : 0
Respeito as regras :
Re: Imagem Aparecer como pergunta
"...estiver na área de colisão com o NPC..." => Esse Tutorial Ensina Como Usar o "on trigger enter".
"...apertar Enter...":
"...apertar Enter...":
- Código:
if (input.GetKey (KeyCode.KeypadEnter))
{
ImagemQuestion.gameObject.SetActive(true); // Ativa a Imagem Com a Pergunta.
}
Magnatah- Instrutor
- PONTOS : 3345
REPUTAÇÃO : 208
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Imagem Aparecer como pergunta
Precisa ser mais específico na dúvida ok?
O código abaixo parte do pressuposto que vc tem um canvas e um prefab da sua imagem.
(Coloque esses dois scripts no objeto q vc quer interagir)
Esse script abaixo verifica a área de colisão, partindo do pressuposto que o objeto que possuir esses dois scripts, possui uma área de colisão do tipo "Trigger" e o seu personagem tenha a tag "Player":
Esse script se preocupa em instanciar apenas UMA vez a imagem no canvas, e destruir essa instância assim que você sai do raio de colisão do objeto.
O código abaixo parte do pressuposto que vc tem um canvas e um prefab da sua imagem.
(Coloque esses dois scripts no objeto q vc quer interagir)
- Código:
using UnityEngine;
using UnityEngine.UI;
public class SetImage : MonoBehaviour{
[SerializeField]
private Canvas _canvas; // Insira através do Inspector o canvas da sua imagem aqui
public Image _image; // Insira através do Inspector o prefab da sua imagem aqui
[HideInInspector]
public Transform img;
public void InstantiateImage(){
img = Instantiate(_image, _canvas.transform.position, Quaternion.identity) as Transform;
img.SetParent(_canvas.transform);
}
}
Esse script abaixo verifica a área de colisão, partindo do pressuposto que o objeto que possuir esses dois scripts, possui uma área de colisão do tipo "Trigger" e o seu personagem tenha a tag "Player":
- Código:
using UnityEngine;
public class DetectArea : MonoBehaviour{
private SetImage _setImage;
private bool _onCollision, actived = true;
void Start(){
_setImage = GetComponent<SetImage>();
}
void Update(){
if(_onCollision)
CheckKey();
else
return;
}
void CheckKey(){
if (Input.GetKey(KeyCode.KeypadEnter) && actived){
_setImage.InstantiateImage();
actived = false;
}
}
void OnTriggerStay(Collider _collider){
if (_collider.CompareTag("Player"))
_onCollision = true;
}
void OnTriggerExit(Collider _collider){
if (_collider.CompareTag("Player")){
_onCollision = false;
actived = true;
Destroy(_setImage.img.gameObject);
}
}
}
Esse script se preocupa em instanciar apenas UMA vez a imagem no canvas, e destruir essa instância assim que você sai do raio de colisão do objeto.
Tópicos semelhantes
» Como fazer tocar áudio, aparecer imagem ou os dois juntos ao colidir ?
» Imagem aparecer na tela ao colididir
» Dúvidas sobre aparecer imagem na tela
» Como fazer mensagem aparecer na tela?
» como fazer um sistema de pergunta
» Imagem aparecer na tela ao colididir
» Dúvidas sobre aparecer imagem na tela
» Como fazer mensagem aparecer na tela?
» como fazer um sistema de pergunta
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos