[Ajuda] Sistema de Texto na tela
+2
Weslley
dfop02
6 participantes
Página 1 de 1
[Ajuda] Sistema de Texto na tela
Eu estava evitando sair criando vários tópicos, mas já que me pediram, obrigado por continuarem me ajudando ^-^
Vamos lá, meu objetivo agora é dar uma mensagem de boas vindas ao Player quando começa o jogo, na Stage_1. A mensagem deve apagar após pressionar qualquer tecla, e logo em seguida aparecer a mensagem 2, e por fim a 3. Eu tentei fazer o que olhei no outro tópico mas não funciona, vou mostrar o que tentei.
Podem me ajudar?
Vamos lá, meu objetivo agora é dar uma mensagem de boas vindas ao Player quando começa o jogo, na Stage_1. A mensagem deve apagar após pressionar qualquer tecla, e logo em seguida aparecer a mensagem 2, e por fim a 3. Eu tentei fazer o que olhei no outro tópico mas não funciona, vou mostrar o que tentei.
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Textstart : MonoBehaviour {
private float velocidade, tempoanimbkp;
public Text texto1;
public Text texto2;
public Text texto3;
public float tempoanim;
// Use this for initialization
void Start () {
texto1 = GetComponent<Text>();
tempoanimbkp = tempoanim;
texto2 = GetComponent<Text>();
tempoanimbkp = tempoanim;
texto3 = GetComponent<Text>();
tempoanimbkp = tempoanim;
}
// Update is called once per frame
void Update () {
tempoanim -= Time.deltaTime;
if (tempoanim <= 0) {
texto1.enabled = !texto1.enabled;
tempoanim = tempoanimbkp;
}
else if (tempoanim <= 0){
texto2.enabled = !texto2.enabled;
tempoanim = tempoanimbkp;
}
else if (tempoanim <= 0){
texto3.enabled = !texto3.enabled;
tempoanim = tempoanimbkp;
}
}
}
Podem me ajudar?
dfop02- Avançado
- PONTOS : 3259
REPUTAÇÃO : 2
Idade : 27
Respeito as regras :
Re: [Ajuda] Sistema de Texto na tela
bom o que vc tem que fazer eh
- Código:
public Text texto;
void Start()
{
texto.enabled = true;
}
void Update()
{
if (Input.anyKeyDown)//ser a entrada que no caso e qualquer tecla for pressionada para baixo
{
texto.enabled = false;
}
}
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [Ajuda] Sistema de Texto na tela
weslleyFx escreveu:bom o que vc tem que fazer eh
- Código:
public Text texto;
void Start()
{
texto.enabled = true;
}
void Update()
{
if (Input.anyKeyDown)//ser a entrada que no caso e qualquer tecla for pressionada para baixo
{
texto.enabled = false;
}
}
Devo repetir 3x para cada texto, ou apenas um para todos os 3?
dfop02- Avançado
- PONTOS : 3259
REPUTAÇÃO : 2
Idade : 27
Respeito as regras :
Re: [Ajuda] Sistema de Texto na tela
depende do que vc for fazer
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [Ajuda] Sistema de Texto na tela
weslleyFx escreveu:depende do que vc for fazer
Eu expliquei acima o que eu pretendia fazer, por isso que quando comentou pensei que apenas 1 se aplicava aos 3, e é isso mesmo?
dfop02- Avançado
- PONTOS : 3259
REPUTAÇÃO : 2
Idade : 27
Respeito as regras :
Re: [Ajuda] Sistema de Texto na tela
Vc pode criar um int e verificar em qual mensagem esta!
hellkiller- Mestre
- PONTOS : 4054
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda] Sistema de Texto na tela
Pelo que eu entendi, seria algo assim:
A questão é, você quer que fique salvo??? Tipo, acontece 1 vez e depois nunca mais??? se quiser, ai tem que fazer um playerprefs simples no start
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Textstart : MonoBehaviour {
private bool habilitarTextos;
private int mensagemAtual;
public float tempoAnim = 1;
public Text texto1;
public Text texto2;
public Text texto3;
void Start () {
habilitarTextos = false;
mensagemAtual = 1;
StartCoroutine(EsperarXSegs (tempoAnim));
}
IEnumerator EsperarXSegs(float tempo){
yield return new WaitForSeconds (tempo);
habilitarTextos = true;
}
void Update () {
if (habilitarTextos) {
if (Input.GetMouseButtonDown (0)) {
mensagemAtual++;
}
if (mensagemAtual == 1) {
texto1.enabled = true;
texto2.enabled = texto3.enabled = false;
}else if (mensagemAtual == 2) {
texto2.enabled = true;
texto1.enabled = texto3.enabled = false;
}
else if (mensagemAtual == 3) {
texto3.enabled = true;
texto1.enabled = texto2.enabled = false;
}else{
texto1.enabled = texto2.enabled = texto3.enabled = false;
}
}else{
texto1.enabled = texto2.enabled = texto3.enabled = false;
}
}
}
A questão é, você quer que fique salvo??? Tipo, acontece 1 vez e depois nunca mais??? se quiser, ai tem que fazer um playerprefs simples no start
Re: [Ajuda] Sistema de Texto na tela
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Textos : MonoBehaviour {
public Text[] texts;
private int index;
// Use this for initialization
void Start () {
index = 0;
for (int i = 0; i < texts.Length; i++) {
texts [i].enabled = false;
}
texts [0].enabled = true;
}
// Update is called once per frame
void Update () {
if (Input.anyKeyDown) {
if (index <= texts.Length - 2) {
texts [index].enabled = false;
texts [++index].enabled = true;
} else {
texts [index].enabled = false;
}
}
}
}
Simples e rapido. Utilizando unity texts UI. Crie um objeto vazio e coloque este script. Depois ligue corretamente os textos na ordem correta. Depois teste.
ps: Funciona com qualquer quantidade de textos. Desde que a intenção seja apresenta-los seguidamente
Última edição por RenanMSV em Sex Fev 26, 2016 1:53 am, editado 1 vez(es)
RenanMSV- Instrutor
- PONTOS : 4484
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: [Ajuda] Sistema de Texto na tela
Nanana, faço um sistema completão e vem o Renan usando array, soh pra sair por cima. heueheueheueh
Re: [Ajuda] Sistema de Texto na tela
Se liga que agora dei uma melhorada :v kkk -q
Zoas manin
Zoas manin
RenanMSV- Instrutor
- PONTOS : 4484
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: [Ajuda] Sistema de Texto na tela
RenanMSV escreveu:Se liga que agora dei uma melhorada :v kkk -q
Zoas manin
Pô, ficou otimo!!
Mas só faltou uma coisa, eu preciso que o meu personagem fique imóvel até passar todas as 3 mensagens, como eu faço? No caso da pra aplicar aquelas variaveis de "Sleep" e "Awake"??
Ou então um FreezeAll, mas como faço para desativar o freeze all? se tudo estivesse na mesma script eu saberia, mas como não está... eu fico meio perdido...
Eu pensei nisso:
- Código:
void Start (){
//Trav. mov. do player durante os textos
PlayerRigidbody.constraints = RigidbodyConstraints2D.FreezeAll;
}
void Update(){
//Destrav. mov. do player após os textos
if (Textos.?????) {
PlayerRigidbody.constraints = RigidbodyConstraints2D.None;
}
}
Foi até onde eu cheguei sozinho /\, está certo ou próximo?
dfop02- Avançado
- PONTOS : 3259
REPUTAÇÃO : 2
Idade : 27
Respeito as regras :
Re: [Ajuda] Sistema de Texto na tela
Tudo depende do script de movimentação que voce usa.
RenanMSV- Instrutor
- PONTOS : 4484
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: [Ajuda] Sistema de Texto na tela
RenanMSV escreveu:Tudo depende do script de movimentação que voce usa.
Vou lhe mostrar:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class Player : MonoBehaviour {
public Rigidbody2D PlayerRigidbody;
public float velocidade = 5;
public float velDeResposta = 2;
private Vector2 ProximaVelocidade;
public float Forca = 11500f;
// Use this for initialization
void Start() {
PlayerRigidbody = GetComponent<Rigidbody2D>();
PlayerRigidbody.gravityScale = 0;
PlayerRigidbody.constraints = RigidbodyConstraints2D.FreezeRotation;
//Trav. mov. do player durante os textos
//PlayerRigidbody.constraints = RigidbodyConstraints2D.FreezeAll;
void Update() {
if (PlayerRigidbody.velocity.magnitude < 0.1f) {
if (Input.GetKeyDown("a")) {
ProximaVelocidade = new Vector2(-velocidade, 0);
}
else if (Input.GetKeyDown("d")) {
ProximaVelocidade = new Vector2(velocidade, 0);
}
else if (Input.GetKeyDown("w")) {
ProximaVelocidade = new Vector2(0, velocidade);
}
else if (Input.GetKeyDown("s")) {
ProximaVelocidade = new Vector2(0, -velocidade);
}
}
//Velocity
PlayerRigidbody.velocity = Vector2.Lerp(PlayerRigidbody.velocity, ProximaVelocidade, Time.deltaTime * velDeResposta);
//Textos
//if (Textos.?????) {
// PlayerRigidbody.constraints = RigidbodyConstraints2D.None;
//}
}
void OnCollisionEnter2D() {
ProximaVelocidade = new Vector2(0, 0);
}
}
dfop02- Avançado
- PONTOS : 3259
REPUTAÇÃO : 2
Idade : 27
Respeito as regras :
Re: [Ajuda] Sistema de Texto na tela
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
[RequireComponent(typeof(Rigidbody2D))]
public class Player : MonoBehaviour {
private Rigidbody2D PlayerRigidbody;
public float velocidade = 5;
public float velDeResposta = 2;
public Text[] textos;
private int index;
private Vector2 ProximaVelocidade;
private bool podeMover;
void Start() {
PlayerRigidbody = GetComponent<Rigidbody2D> ();
PlayerRigidbody.gravityScale = 0;
PlayerRigidbody.constraints = RigidbodyConstraints2D.FreezeRotation;
index = 0;
podeMover = false;
foreach (Text tex in textos) {
tex.enabled = false;
}
textos [index].enabled = true;
}
void Update() {
if (PlayerRigidbody.velocity.magnitude < 0.1f) {
if (Input.GetKeyDown("a")) {
ProximaVelocidade = new Vector2(-velocidade, 0);
}
else if (Input.GetKeyDown("d")) {
ProximaVelocidade = new Vector2(velocidade, 0);
}
else if (Input.GetKeyDown("w")) {
ProximaVelocidade = new Vector2(0, velocidade);
}
else if (Input.GetKeyDown("s")) {
ProximaVelocidade = new Vector2(0, -velocidade);
}
}
//
if (Input.anyKeyDown && index < textos.Length-1) {
index++;
foreach (Text tex in textos) {
tex.enabled = false;
}
textos [index].enabled = true;
} else if(Input.anyKeyDown && index >= textos.Length-1) {
foreach (Text tex in textos) {
tex.enabled = false;
}
podeMover = true;
}
if (podeMover == false) {
ProximaVelocidade = new Vector2(0, 0);
}
PlayerRigidbody.velocity = Vector2.Lerp(PlayerRigidbody.velocity, ProximaVelocidade, Time.deltaTime * velDeResposta);
}
void OnCollisionEnter2D() {
ProximaVelocidade = new Vector2(0, 0);
}
}
Re: [Ajuda] Sistema de Texto na tela
E se eu quiser tipo apertar um botão e aparecer um texto....
Um Public Text seria util também?
Exemplo:
- Código:
using UnityEngine;
using System.Collections;
void Start (){
void Update (){
if(Input.GetKeyDown ("u" //Usei "u" como exemplo)){
Um Public Text seria util também?
Exemplo:
- Código:
using UnityEngine;
using Sytem.Collections;
using UnityEngine.UI //Texto é UI se não me engano...
public Text texto;
void Update () {
if(Input.GetKeyDown("u")) {
Re: [Ajuda] Sistema de Texto na tela
Sim, ai basta colocar dentro do if:
texto.enabeld = !texto.enabeld;
para ficar ativando ou desativando conforme pressiona. Ou brincar um pouco com booleanas
texto.enabeld = !texto.enabeld;
para ficar ativando ou desativando conforme pressiona. Ou brincar um pouco com booleanas
Re: [Ajuda] Sistema de Texto na tela
Então me manda um Script completo por favor.MarcosSchultz escreveu:Sim, ai basta colocar dentro do if:
texto.enabeld = !texto.enabeld;
para ficar ativando ou desativando conforme pressiona. Ou brincar um pouco com booleanas
Tópicos semelhantes
» Unity - Sistema de Giro da Tela - Ajuda pfv!
» Texto Na tela
» (Duvida) Texto na tela
» Texto na tela? de quantidade de muniçao
» Texto na tela, android, não aparece.
» Texto Na tela
» (Duvida) Texto na tela
» Texto na tela? de quantidade de muniçao
» Texto na tela, android, não aparece.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos