[TUTORIAL] Sistema Simples de Falas
4 participantes
Página 1 de 1
[TUTORIAL] Sistema Simples de Falas
Seu Uso é Bastante Simples, Exemplo:
Temos a Seguinte Conversa:
Fulano Tal: esse é o teste 1.
Beltrano: e esse é o teste 2.
Fulano Tal: e o 3
Como Ficaria No Unity:
IMAGEM: https://prnt.sc/oep8iv
Script:
Temos a Seguinte Conversa:
Fulano Tal: esse é o teste 1.
Beltrano: e esse é o teste 2.
Fulano Tal: e o 3
Como Ficaria No Unity:
IMAGEM: https://prnt.sc/oep8iv
Script:
- Código:
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
// Autor: Matheus Magnatah
public class SistemaDeFalas : MonoBehaviour
{
//==================== ATRIBUTOS ====================//
[Header("Objeto Ou Imagem de Fundo")]
public GameObject ObjetoConversa;
[Header("Texts")]
public Text TextNome, TextFalas;
[Header("Nomes Em Sequencia")]
public string[] SequenciaDeNomes;
[Header("Falas Em Sequencia")]
[TextArea()]
public string[] SequenciaDeFalas;
[Header("Botoes")]
public Button BotaoVoltar;
public Button BotaoAvancar;
public Button BotaoOk;
private int NumPosArray = 0; // Numero da Posição Do Array "SequenciaDeNomes" && "SequenciaDeFalas".
//==================== METODOS ====================//
private void FixedUpdate()
{
if (Input.GetKeyDown(KeyCode.F))
{
StartCoroutine(IniciarConversa());
}
}
public void Avancar()
{
// Avançar Conversa.
if (NumPosArray < SequenciaDeNomes.Length - 1)
{
BotaoVoltar.gameObject.SetActive(true);
BotaoOk.gameObject.SetActive(false);
NumPosArray += 1;
if (NumPosArray > SequenciaDeNomes.Length) { NumPosArray = (byte) SequenciaDeNomes.Length; }
UpdateFalas(SequenciaDeNomes[NumPosArray], SequenciaDeFalas[NumPosArray]);
}
// Caso Seja a Última Fala.
else if (NumPosArray == SequenciaDeNomes.Length - 1)
{
BotaoAvancar.gameObject.SetActive(false);
BotaoOk.gameObject.SetActive(true);
}
}
public void Voltar()
{
// Voltar Conversa.
if (NumPosArray > 0)
{
BotaoAvancar.gameObject.SetActive(true);
BotaoOk.gameObject.SetActive(false);
NumPosArray -= 1;
if (NumPosArray < 0) { NumPosArray = 0; }
UpdateFalas(SequenciaDeNomes[NumPosArray], SequenciaDeFalas[NumPosArray]);
}
// Caso Esteja Na Primeira Fala.
else if (NumPosArray == 0)
{
BotaoVoltar.gameObject.SetActive(false);
BotaoOk.gameObject.SetActive(false);
}
}
public void Ok()
{
// Caso Seja a Última Fala.
if (NumPosArray == SequenciaDeFalas.Length-1)
{
ObjetoConversa.gameObject.SetActive(false);
}
}
public void UpdateFalas(string name, string fala)
{
// Atualiza os Texts
TextNome.text = name;
TextFalas.text = fala;
}
IEnumerator IniciarConversa()
{
ObjetoConversa.gameObject.SetActive(true);
UpdateFalas(SequenciaDeNomes[0], SequenciaDeFalas[0]);
// Setando Botoes
BotaoAvancar.onClick = new Button.ButtonClickedEvent();
BotaoAvancar.onClick.AddListener(() => Avancar());
BotaoVoltar.onClick = new Button.ButtonClickedEvent();
BotaoVoltar.onClick.AddListener(() => Voltar());
BotaoOk.onClick = new Button.ButtonClickedEvent();
BotaoOk.onClick.AddListener(() => Ok());
// Os Botoes Voltar e Iniciar Começam Desativados.
BotaoVoltar.gameObject.SetActive(false);
BotaoOk.gameObject.SetActive(false);
yield return null;
}
}
Magnatah- Instrutor
- PONTOS : 3547
REPUTAÇÃO : 209
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: [TUTORIAL] Sistema Simples de Falas
Com Uma Pequena Modificação Nesse Código, Estou Deixando O Game Que To Criando em 2 Idiomas.
Magnatah- Instrutor
- PONTOS : 3547
REPUTAÇÃO : 209
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 :
iToddy- Avançado
- PONTOS : 2275
REPUTAÇÃO : 10
Respeito as regras :
Re: [TUTORIAL] Sistema Simples de Falas
Magnatah escreveu:Seu Uso é Bastante Simples, Exemplo:
Temos a Seguinte Conversa:
Fulano Tal: esse é o teste 1.
Beltrano: e esse é o teste 2.
Fulano Tal: e o 3
Como Ficaria No Unity:
IMAGEM: https://prnt.sc/oep8iv
onde coloca o script? configurei, mais quando chego no npc nao aparece nada.
Script:
- Código:
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
// Autor: Matheus Magnatah
public class SistemaDeFalas : MonoBehaviour
{
//==================== ATRIBUTOS ====================//
[Header("Objeto Ou Imagem de Fundo")]
public GameObject ObjetoConversa;
[Header("Texts")]
public Text TextNome, TextFalas;
[Header("Nomes Em Sequencia")]
public string[] SequenciaDeNomes;
[Header("Falas Em Sequencia")]
[TextArea()]
public string[] SequenciaDeFalas;
[Header("Botoes")]
public Button BotaoVoltar;
public Button BotaoAvancar;
public Button BotaoOk;
private int NumPosArray = 0; // Numero da Posição Do Array "SequenciaDeNomes" && "SequenciaDeFalas".
//==================== METODOS ====================//
private void FixedUpdate()
{
if (Input.GetKeyDown(KeyCode.F))
{
StartCoroutine(IniciarConversa());
}
}
public void Avancar()
{
// Avançar Conversa.
if (NumPosArray < SequenciaDeNomes.Length - 1)
{
BotaoVoltar.gameObject.SetActive(true);
BotaoOk.gameObject.SetActive(false);
NumPosArray += 1;
if (NumPosArray > SequenciaDeNomes.Length) { NumPosArray = (byte) SequenciaDeNomes.Length; }
UpdateFalas(SequenciaDeNomes[NumPosArray], SequenciaDeFalas[NumPosArray]);
}
// Caso Seja a Última Fala.
else if (NumPosArray == SequenciaDeNomes.Length - 1)
{
BotaoAvancar.gameObject.SetActive(false);
BotaoOk.gameObject.SetActive(true);
}
}
public void Voltar()
{
// Voltar Conversa.
if (NumPosArray > 0)
{
BotaoAvancar.gameObject.SetActive(true);
BotaoOk.gameObject.SetActive(false);
NumPosArray -= 1;
if (NumPosArray < 0) { NumPosArray = 0; }
UpdateFalas(SequenciaDeNomes[NumPosArray], SequenciaDeFalas[NumPosArray]);
}
// Caso Esteja Na Primeira Fala.
else if (NumPosArray == 0)
{
BotaoVoltar.gameObject.SetActive(false);
BotaoOk.gameObject.SetActive(false);
}
}
public void Ok()
{
// Caso Seja a Última Fala.
if (NumPosArray == SequenciaDeFalas.Length-1)
{
ObjetoConversa.gameObject.SetActive(false);
}
}
public void UpdateFalas(string name, string fala)
{
// Atualiza os Texts
TextNome.text = name;
TextFalas.text = fala;
}
IEnumerator IniciarConversa()
{
ObjetoConversa.gameObject.SetActive(true);
UpdateFalas(SequenciaDeNomes[0], SequenciaDeFalas[0]);
// Setando Botoes
BotaoAvancar.onClick = new Button.ButtonClickedEvent();
BotaoAvancar.onClick.AddListener(() => Avancar());
BotaoVoltar.onClick = new Button.ButtonClickedEvent();
BotaoVoltar.onClick.AddListener(() => Voltar());
BotaoOk.onClick = new Button.ButtonClickedEvent();
BotaoOk.onClick.AddListener(() => Ok());
// Os Botoes Voltar e Iniciar Começam Desativados.
BotaoVoltar.gameObject.SetActive(false);
BotaoOk.gameObject.SetActive(false);
yield return null;
}
}
dex556- Membro
- PONTOS : 635
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Sistema simples de Cutscenes
» [TUTORIAL] Simples Sistema De Noite e Dia
» [TUTORIAL] Sistema simples de GRANADA e EXPLOSÕES
» [TUTORIAL] Sistema de Lanterna Simples sem bateria
» [TUTORIAL] Sistema de câmera em primeira pessoa SIMPLES
» [TUTORIAL] Simples Sistema De Noite e Dia
» [TUTORIAL] Sistema simples de GRANADA e EXPLOSÕES
» [TUTORIAL] Sistema de Lanterna Simples sem bateria
» [TUTORIAL] Sistema de câmera em primeira pessoa SIMPLES
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos