Exibir dialógo ao aproximar - Script
4 participantes
Página 1 de 1
Exibir dialógo ao aproximar - Script
galera eu criei um script de dialogo(segue abaixo:)
DialogueManager:
Eu queria fazer com que quando o player se aproximasse do npc, aparece o botão de iniciar o dialogo(já criado)
DialogueManager:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
public class DialogueManager : MonoBehaviour {
public Text nameText;
public Text dialogueText;
public Animator animator;
public Queue<string> sentences;
// Use this for initialization
void Start () {
sentences = new Queue<string>();
}
public void StartDialogue(Dialogue dialogue){
animator.SetBool("IsOpen", true);
Debug.Log("Conversa iniciada com " + dialogue.name);
nameText.text = dialogue.name;
sentences.Clear();
foreach (string sentence in dialogue.sentences){
sentences.Enqueue(sentence);
}
DisplayNextSentence();
}
public void DisplayNextSentence(){
if(sentences.Count == 0){
EndDialogue();
return;
}
string sentence = sentences.Dequeue();
StopAllCoroutines();
StartCoroutine(TypeSentence(sentence));
}
IEnumerator TypeSentence (string sentence){
dialogueText.text ="";
foreach (char letter in sentence.ToCharArray()){
dialogueText.text += letter;
yield return null;
}
}
void EndDialogue(){
animator.SetBool("IsOpen", false);
Debug.Log("Final da Conversa");
}
}
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DialogueTrigger : MonoBehaviour {
public Dialogue dialogue;
public void TriggerDialogue ()
{
FindObjectOfType<DialogueManager>().StartDialogue(dialogue);
}
}
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class Dialogue{
public string name;
[TextArea(3, 10)]
public string[] sentences;
}
Eu queria fazer com que quando o player se aproximasse do npc, aparece o botão de iniciar o dialogo(já criado)
Última edição por dstaroski em Dom Dez 31, 2017 2:08 pm, editado 1 vez(es) (Motivo da edição : Alterado título conforme padrões do fórum.)
EricKBMS- Membro
- PONTOS : 2754
REPUTAÇÃO : 10
Áreas de atuação : Programação
Respeito as regras :
Re: Exibir dialógo ao aproximar - Script
Voce pode criar um colisor no npc e detectar colisao nele ou pode usar um dos metodos Overlap. De uma pesquisada nessas duas opcoes.
Re: Exibir dialógo ao aproximar - Script
Boa tarde! por gentileza não abra tópicos com títulos "Me ajude e tals", estamos em um fórum, crie seus títulos com objetividade, veja por exemplo os títulos dos tópicos. O mesmo será alterado por mim.EricKBMS escreveu:galera eu criei um script de dialogo(segue abaixo:)
DialogueManager:DialogueTrigger:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
public class DialogueManager : MonoBehaviour {
public Text nameText;
public Text dialogueText;
public Animator animator;
public Queue<string> sentences;
// Use this for initialization
void Start () {
sentences = new Queue<string>();
}
public void StartDialogue(Dialogue dialogue){
animator.SetBool("IsOpen", true);
Debug.Log("Conversa iniciada com " + dialogue.name);
nameText.text = dialogue.name;
sentences.Clear();
foreach (string sentence in dialogue.sentences){
sentences.Enqueue(sentence);
}
DisplayNextSentence();
}
public void DisplayNextSentence(){
if(sentences.Count == 0){
EndDialogue();
return;
}
string sentence = sentences.Dequeue();
StopAllCoroutines();
StartCoroutine(TypeSentence(sentence));
}
IEnumerator TypeSentence (string sentence){
dialogueText.text ="";
foreach (char letter in sentence.ToCharArray()){
dialogueText.text += letter;
yield return null;
}
}
void EndDialogue(){
animator.SetBool("IsOpen", false);
Debug.Log("Final da Conversa");
}
}E o Dialogue:,
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DialogueTrigger : MonoBehaviour {
public Dialogue dialogue;
public void TriggerDialogue ()
{
FindObjectOfType<DialogueManager>().StartDialogue(dialogue);
}
}
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class Dialogue{
public string name;
[TextArea(3, 10)]
public string[] sentences;
}
Eu queria fazer com que quando o player se aproximasse do npc, aparece o botão de iniciar o dialogo(já criado)
Abraço!
Última edição por dstaroski em Dom Dez 31, 2017 2:07 pm, editado 1 vez(es) (Motivo da edição : Acrescimo de informação)
Re: Exibir dialógo ao aproximar - Script
Valeu cara!jasondavin escreveu:Voce pode criar um colisor no npc e detectar colisao nele ou pode usar um dos metodos Overlap. De uma pesquisada nessas duas opcoes.
EricKBMS- Membro
- PONTOS : 2754
REPUTAÇÃO : 10
Áreas de atuação : Programação
Respeito as regras :
Re: Exibir dialógo ao aproximar - Script
o brackeys criou ne kkkkk, conseguiu fazer oq queria? Eu queria q quando apertasse a tecla "Q" aparecesse o dialogo mas n estou conseguindo, se vc ver isso podia me responder como fez?EricKBMS escreveu:galera eu criei um script de dialogo(segue abaixo:)
DialogueManager:DialogueTrigger:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
public class DialogueManager : MonoBehaviour {
public Text nameText;
public Text dialogueText;
public Animator animator;
public Queue<string> sentences;
// Use this for initialization
void Start () {
sentences = new Queue<string>();
}
public void StartDialogue(Dialogue dialogue){
animator.SetBool("IsOpen", true);
Debug.Log("Conversa iniciada com " + dialogue.name);
nameText.text = dialogue.name;
sentences.Clear();
foreach (string sentence in dialogue.sentences){
sentences.Enqueue(sentence);
}
DisplayNextSentence();
}
public void DisplayNextSentence(){
if(sentences.Count == 0){
EndDialogue();
return;
}
string sentence = sentences.Dequeue();
StopAllCoroutines();
StartCoroutine(TypeSentence(sentence));
}
IEnumerator TypeSentence (string sentence){
dialogueText.text ="";
foreach (char letter in sentence.ToCharArray()){
dialogueText.text += letter;
yield return null;
}
}
void EndDialogue(){
animator.SetBool("IsOpen", false);
Debug.Log("Final da Conversa");
}
}E o Dialogue:,
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DialogueTrigger : MonoBehaviour {
public Dialogue dialogue;
public void TriggerDialogue ()
{
FindObjectOfType<DialogueManager>().StartDialogue(dialogue);
}
}
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class Dialogue{
public string name;
[TextArea(3, 10)]
public string[] sentences;
}
Eu queria fazer com que quando o player se aproximasse do npc, aparece o botão de iniciar o dialogo(já criado)
Hunt3r- Iniciante
- PONTOS : 1707
REPUTAÇÃO : 0
Respeito as regras :
Re: Exibir dialógo ao aproximar - Script
using System.Collections;Hunt3r escreveu:o brackeys criou ne kkkkk, conseguiu fazer oq queria? Eu queria q quando apertasse a tecla "Q" aparecesse o dialogo mas n estou conseguindo, se vc ver isso podia me responder como fez?
using System.Collections.Generic;
using UnityEngine;
public class DialogueTrigger : MonoBehaviour {
public Dialogue dialogue;
[Range(1.01f, 15.0f)]public float Distance;
public GameObject Player;
void Update() {
if(Vector3.Distance(transform.position, Player.transform.position) < Distance){
if(Input.GetKey(KeyCode.Q)){
TriggerDialogue();
}
}
}
public void TriggerDialogue ()
{
FindObjectOfType<DialogueManager>().StartDialogue(dialogue);
}
}
Eu alterei o TriggerDialogue para ficar dessa forma, mas a unity n consegue detectar o isOpen do script DialogueManager e n
abre a animacao da caixa de dialogo.
Hunt3r- Iniciante
- PONTOS : 1707
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» Objetos ficando invisivel ao se aproximar com a camera
» Exibir um texto na tela por um tempo
» Verificar se pode mover ou não ao se aproximar de um obstaculo.
» [ Duvida Unity 5.3 ] Exibir score
» Como exibir uma mensagem pop up no android?
» Exibir um texto na tela por um tempo
» Verificar se pode mover ou não ao se aproximar de um obstaculo.
» [ Duvida Unity 5.3 ] Exibir score
» Como exibir uma mensagem pop up no android?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos