SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
[VIDEO] Sistema de Yu-Gi-Oh com SQLite
Simulador de policia [C#] [Jogo em andamento] [Procurando Equipe]
DUVIDA MONETIZAÇÃO DE JOGOS NA PLAY STORE COM ADMOB
Qual a sua opinião sobre modelos de negócio e monetização de jogos?
sistema de dinheiro
[TUTORIAL] Simples Sistema De Noite e Dia
Quanto Devo Cobrar Por Um Pacote De Modelos 3D ?
Ajuste em sistema de pontuação!
Tela de seleção e multiplayer local
Documentação do Unity Offline em Português Existe???
[DÚVIDA] BONECO NÃO PULA NA DIAGONAL ESQUERDA E FRENTE
Não consigo atribuir pontos no admob reward.
não concigo atirar
[YOUTUBE DOIDO?] Wtf?
Voltar versão do projeto.
Spawn Random simultâneo em pontos específicos
a iluminacao de pono nao esta passando para o teto , unity
Jogo não roda no Android 5 Samsung
QUERIA SABER SE POSSO VENDER MODELOS 3D AQUI ????
erro no scripts de dano no player 2D
Não Acho o Erro no Script - é um script para o player se mover
[HELP] Criação de dano e player health utilizando photon game 2d
[____ QUAL A OPINIÃO DE VOCÊS SOBRE O FÓRUM? ____]
Texto por Script
Problema com sprite na unity
inimigo não muda de sdirecao ao encostar em um ponto, unity 3d
"Dúvida" Como fazer o personagem entra dentro do carro e dirigir ?
Erro ao compilar
Função do Botão UI pelo Script
Pacote Com 79 Skybox Grátis
[Projeto em Andamento] Brazil Combat
[DÚVIDA] ANIMAÇÃO DE PULO NO CONTROLADOR QUE TEM BLEND TREE COM MOVIMENTO
[RESOLVIDO] Requisitos de hardware para Post Processing
alguem pode ajudar sobre ID@Xbox
[RESOLVIDO] Rigidbody: Alterar drag dentro do jogo
Inventário de Sobrevivencia
[RESOLVIDO] MOVIMENTO USANDO RIGIDIBODY NÃO POSSUI GRAVIDADE.
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[TUTORIAL] Usando Delegates em Unity - Sistema de caixa de diálogo!
[DUVIDA] Tiro com botao touch android!!
KIT de Tiro em 3° Pessoa
Inimigo atacar e tirar vida do meu personagem!!
Inserir animação em certos elemento
Como bloquear rotação em um eixo do objeto?
Dica para jogo point and click
[RESOLVIDO] Alguem pode ajudar com o pos processamento screen space reflection
Criar Script para configurar um assets de um character
Dúvida de imagem sobre realidade aumentada
Modelo 3D
Erro ao exportar APK no unity
como fazer a bala dar impulso na direcao da arma unity 3d
Render Texture, Raw Image e camera
CENTRO DE ROTAÇÃO UNITY
PRESSIONAR BOTÃO TOUCH NO ANDROID SERÁ O MESMO QUE PRESSIONAR UMA TECLA DO TECLADO REAL
Erro após reinstalar o Unity!
Erro ao publicar na google play
[____ASSET____] MS Vehicle System (FREE VERSION)
[TUTORIAL] Unity 5.5 - Splash Screen
Como adicionar todos materiais de um Obj em um Array ou Lista?
Som não funciona no IOS
Como eu faço pra poder interagir apenas uma vez com um objeto de luz?
Preciso de ajuda com GetButtonDown with Axis
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
SOU MODELADOR SE TIVER ALGUEM PRECISANDO AI ME CONTATE
[TUTORIAL] IA Simples Parte 2 (Atirar)
Photon Bootcamp Asset completo
Detectando Colisão da Arma com o Inimigo
Como eu faria pra ter uma animação diferente para cada lado em um jogo de plataforma 2D?
duvida sobre sistema de cheats estilo gta sa
como fazer a luz ficar "important" e "not important" por script?
[TUTORIAL] Sistema de Entregas + GPS!
[TUTORIAL] Desenvolvendo um jogo de quebra-cabeças
[TUTORIAL] Gerando Objetos Proceduralmente
[RESOLVIDO] COMO EXECUTAR AUDIO QUANDO PLAYER MORRE
PopUp bloqueando versões antigas do jogo
[TUTORIAL] Sistema de PORTAS e CHAVES
Movimentação 3D View Blender
Imagem Aparecer como pergunta
Aparecer item comprado
Por que a UI da esse "BUG"?
Zerar os tempos do Cronometro Unity
Ajuda na unity
Girar personagem no próprio eixo usando joystick virtual
Problema com Esqueleto do personagem
[TUTORIAL] Script de Contagem Regressiva
Ajuda com o codigo.
Como acessar uma variável de um script utilizando como parâmetro uma variável nomescript
CRIEI MEU PRIMEIRO JOGO! 1 ANO DE TRABALHO!
MOVIMENTAÇAO DE UM CUBO
Duvida sobre materiais e textura
Super Husky - meu jogo
[RESOLVIDO] Duvida sobre Unity
[Em Desenvolvimento] Battles of Worlds
[RESOLVIDO] Converter string em virgula em float (decimal)
[TUTORIAL] Como usar FREE EASY CRIATURA CONTROLE IA
Duvida em relação processo de geração de receita
Me ajudem por favor
[RESOLVIDO] Posicionar interestial admob quando o personagem morrer
JOGO DE CARRO EM 2D E PRECISO DE AJUDA EM SCRIPT QUE VAI PRA FRENTE E PRA TRAZ
Hoje à(s) 1:44 am
Ontem à(s) 10:52 pm
Ontem à(s) 4:50 pm
Ontem à(s) 4:45 pm
Ontem à(s) 3:01 pm
Ontem à(s) 12:53 pm
Ontem à(s) 12:42 pm
Ter Jun 25, 2019 11:25 pm
Ter Jun 25, 2019 10:31 pm
Ter Jun 25, 2019 10:21 pm
Ter Jun 25, 2019 9:27 pm
Ter Jun 25, 2019 7:48 pm
Ter Jun 25, 2019 6:25 pm
Ter Jun 25, 2019 3:45 pm
Ter Jun 25, 2019 3:00 pm
Ter Jun 25, 2019 2:14 pm
Ter Jun 25, 2019 11:18 am
Ter Jun 25, 2019 2:03 am
Seg Jun 24, 2019 10:14 pm
Seg Jun 24, 2019 9:47 pm
Seg Jun 24, 2019 8:44 pm
Seg Jun 24, 2019 5:46 pm
Seg Jun 24, 2019 5:35 pm
Seg Jun 24, 2019 5:22 pm
Seg Jun 24, 2019 5:21 pm
Seg Jun 24, 2019 5:19 pm
Seg Jun 24, 2019 5:19 pm
Seg Jun 24, 2019 5:17 pm
Seg Jun 24, 2019 1:19 pm
Seg Jun 24, 2019 1:09 pm
Dom Jun 23, 2019 9:36 pm
Dom Jun 23, 2019 7:16 pm
Dom Jun 23, 2019 1:30 pm
Dom Jun 23, 2019 11:21 am
Dom Jun 23, 2019 10:52 am
Sab Jun 22, 2019 9:50 pm
Sab Jun 22, 2019 7:28 pm
Sab Jun 22, 2019 4:56 pm
Sab Jun 22, 2019 4:35 pm
Sab Jun 22, 2019 3:23 pm
Sab Jun 22, 2019 3:20 pm
Sab Jun 22, 2019 1:09 am
Sex Jun 21, 2019 5:51 pm
Sex Jun 21, 2019 1:20 am
Qui Jun 20, 2019 11:58 pm
Qui Jun 20, 2019 11:56 pm
Qui Jun 20, 2019 11:18 pm
Qui Jun 20, 2019 11:17 pm
Qui Jun 20, 2019 11:16 pm
Qui Jun 20, 2019 11:09 pm
Qui Jun 20, 2019 11:00 pm
Qui Jun 20, 2019 10:57 pm
Qui Jun 20, 2019 10:52 pm
Qui Jun 20, 2019 10:50 pm
Qui Jun 20, 2019 10:45 pm
Qui Jun 20, 2019 10:42 pm
Qui Jun 20, 2019 10:34 pm
Qui Jun 20, 2019 10:33 pm
Qui Jun 20, 2019 10:31 pm
Qui Jun 20, 2019 10:20 pm
Qui Jun 20, 2019 10:08 pm
Qui Jun 20, 2019 9:43 pm
Qui Jun 20, 2019 9:40 pm
Qui Jun 20, 2019 2:52 pm
Qua Jun 19, 2019 11:05 pm
Qua Jun 19, 2019 8:02 pm
Qua Jun 19, 2019 3:35 pm
Qua Jun 19, 2019 3:30 pm
Ter Jun 18, 2019 8:05 pm
Ter Jun 18, 2019 10:06 am
Ter Jun 18, 2019 10:02 am
Ter Jun 18, 2019 9:46 am
Seg Jun 17, 2019 9:42 pm
Seg Jun 17, 2019 8:17 pm
Dom Jun 16, 2019 1:16 pm
Dom Jun 16, 2019 4:03 am
Sab Jun 15, 2019 5:52 pm
Sab Jun 15, 2019 1:43 pm
Sab Jun 15, 2019 12:01 am
Sex Jun 14, 2019 10:47 pm
Sex Jun 14, 2019 9:39 pm
Sex Jun 14, 2019 9:20 pm
Sex Jun 14, 2019 8:56 pm
Sex Jun 14, 2019 8:31 pm
Sex Jun 14, 2019 7:09 pm
Sex Jun 14, 2019 6:26 pm
Sex Jun 14, 2019 8:59 am
Sex Jun 14, 2019 5:25 am
Qui Jun 13, 2019 7:33 pm
Qui Jun 13, 2019 1:02 pm
Qua Jun 12, 2019 8:26 pm
Qua Jun 12, 2019 5:27 pm
Qua Jun 12, 2019 3:54 pm
Qua Jun 12, 2019 2:50 pm
Qua Jun 12, 2019 12:13 pm
Ter Jun 11, 2019 5:26 pm
Ter Jun 11, 2019 3:43 pm
Seg Jun 10, 2019 12:24 pm
Dom Jun 09, 2019 3:19 pm
Giwn
Giwn
artplayer
artplayer
JhoowGamer
JhoowGamer
Magnatah
danielPedra90
xxxlipehxxx
Magnatah
osiasbezerra
slevimk
DESTRUITOR
yurinogueira
SteveRogers
ffabim
Magnatah
lhm
Magnatah
DESTRUITOR
Diguinho
Diguinho
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Caue
MarcosSchultz
NKKF
NKKF
JohnRambo
osiasbezerra
guimaraf
yurinogueira
JonathanDiego
yurinogueira
osiasbezerra
Tegh
Tegh
alisonzinhod
alisonzinhod
osiasbezerra
artplayer
MarcosSchultz
abraao36
diegopds
MarcosSchultz
numb123
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
XxzeroChinxX 999
Matrirxp
artplayer
MarcosSchultz
MarcosSchultz
Diguinho
MarceloYBP
JhoowGamer
Diego Felix
Matrirxp
Diego Felix
Diguinho
MarcosSchultz
lesgoy
MayLeone
Magnatah
glauco
Magnatah
Magnatah
Magnatah
Magnatah
Magnatah
artplayer
Tegh
fluminintia
diegopds
ronigleydson
GameLACK
poyser
Dom3000
numb123
Unidade3d5
poyser
JohnRambo
slevimk
Magnatah

[TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2.

Ir em baixo

TUTORIAL [TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2.

Mensagem por RenanMSV em Qui Set 15, 2016 12:13 pm

Andei pesquisando na internet e achei um projeto de manipulação de arquivos ini muito interessante e util. Resolvi criar então um sistema que faça a troca facil de linguagens com esses arquivos. Sendo possivel usuarios criarem suas proprias traduções e seu jogo as reconhecerá.

Funciona bem simples. O jogo lê um arquivo .ini com os textos, identifica qual linguagem é, e seta na sua cena texto por texto.

Primeiramente vamos instalar o projeto de manipulação de arquivos .ini. Baixe: https://github.com/rickyah/ini-parser/archive/development.zip

Abra o zip e vá em src e extraia apenas a pasta IniFileParser para seu projeto no unity.

Pronto agora crie esses 2 scripts:

Código:

using UnityEngine;
using UnityEngine.UI;
using System;
using System.Collections;
using System.IO;
using System.Text;
using IniParser;
using IniParser.Model;


public class Language : MonoBehaviour {
   IniData data;
   FileIniDataParser fileIniData;
   string patch;
   public string[] languageFiles;
   public string[] gameTexts;
   public Dropdown languageDropdown;

   void Start () {
      InitializeLanguageSystem ();
      SetDropdownOptions ();
   }

   /// <summary>
   /// Initializes the language system.
   /// </summary>
   void InitializeLanguageSystem(){
      patch = Application.dataPath + "/StreamingAssets/Local/Languages/";
      fileIniData = new FileIniDataParser();
   }

   /// <summary>
   /// Sets the dropdown options.
   /// </summary>
   void SetDropdownOptions (){
      try {
         languageFiles = Directory.GetFiles (patch,"*.ini",SearchOption.TopDirectoryOnly);
         if (languageFiles.Length == 0) {
            OnLanguageFilesMissed("Not find any files in '" + patch + "'");
            return;
         }
      } catch (Exception e) {
         OnLanguageFilesMissed(e.Message);
         return;
      }
      foreach (string local in languageFiles) {
         data = fileIniData.ReadFile (local);
         languageDropdown.options.Add( new Dropdown.OptionData{ text = data ["LanguageName"] ["NAME"]} );
      }
      languageDropdown.value = 1; // corrige bug do dropdown ficar vazio
      if (PlayerPrefs.HasKey ("languageValue")) {
         languageDropdown.value = PlayerPrefs.GetInt ("languageValue");
      } else {
         languageDropdown.value = 0;
         PlayerPrefs.SetInt ("languageValue", 0);
      }
      languageDropdown.onValueChanged.AddListener((int arg)=>{
         HandleTexts ();
      });
      HandleTexts ();
   }

   /// <summary>
   /// Handles the texts.
   /// </summary>
   void HandleTexts (){
      data = fileIniData.ReadFile (languageFiles[languageDropdown.value]);
      KeyDataCollection keys = data.Sections.GetSectionData ("Language").Keys;
      int i = 0;
      gameTexts = new string[keys.Count];
      foreach (KeyData k in keys) {
         gameTexts[i] = k.Value;
         i++;
      }
      PlayerPrefs.SetInt ("languageValue",languageDropdown.value);
      SetTextsScript[] tempTexts = FindObjectsOfType<SetTextsScript> ();
      foreach (SetTextsScript t in tempTexts) {
         t.Handle ();
      }
   }



   // Eventos a gosto do Desenvolvedor :

   /// <summary>
   /// Raises the language files missed event.
   /// </summary>
   /// <param name="error">Error string.</param>
   void OnLanguageFilesMissed(string error){
      // o que fazer quando a pasta ou os arquivos não puderem ser recuperados!
      // crie novos arquivos, mande a pessoa reinstalar ou sla.
      print("Erro: " + error + " Reinstale o jogo!");
   }
}

Código:

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class SetTextsScript : MonoBehaviour {
   Text txt;
   Language lang;
   public int index;

   void Awake(){
      lang = FindObjectOfType<Language>().GetComponent<Language>();
      txt = GetComponent<Text> ();
   }

   public void Handle(){
      if (!lang) {
         print ("Object not Found");
         return;
      }
      txt.text = lang.gameTexts[index];
   }
}

Agora para fazer funcionar basta que voce coloque o script SetTextsScript em cada UI Text que voce criar e colocar na variavel index de cada o index correto.
Se voce colocar 0 o texto vai ser o primeiro que estiver no arquivo de traducao...se botar 1 será o segundo... 2 o terceiro.....


Bem simples.

Veja que no primeiro script há um evento OnLanguageFilesMissed(string error)

Abra o script e edite o que acontecerá caso os arquivos ou a pasta não possam ser encontrados no pc do jogador.

Como criar suas traduções:

Basta copiar algum arquivo da pasta StreamingAssets/Local/Languages/, renomear com o nome da linguagem (exemplo: frances) e traduzir todas as frases. Depois abra o jogo novamente para as novas linguagens aparecerem na lista do dropdown.


O resultado:



Link para baixar o projeto junto com os arquivos de linguagem utilizados (IMPORTANTE BAIXAR ! QUALQUER MUDANÇA NA ESTRUTURA DOS ARQUIVOS FARÁ O SISTEMA NÃO FUNCIONAR).

https://github.com/RenanMsV/Unity-3D-Language-System-with-rickyah-ini-parser/


Última edição por RenanMSV em Qui Set 15, 2016 12:58 pm, editado 1 vez(es)
RenanMSV
RenanMSV
Instrutor

Masculino PONTOS : 2503
REPUTAÇÃO : 346
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras : [TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2.

Mensagem por artplayer em Qui Set 15, 2016 12:43 pm

Legal cara, vai ajudar muita gente! Parabéns pela iniciativa!  Cheers
artplayer
artplayer
ProgramadorMaster

Masculino PONTOS : 1924
REPUTAÇÃO : 309
Idade : 35
Respeito as regras : [TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2.

Mensagem por RenanMSV em Qui Set 15, 2016 1:03 pm

@artplayer escreveu:Legal cara, vai ajudar muita gente! Parabéns pela iniciativa!  Cheers

Obrigado ! :lol!: Cheers


@edit Adicionado link para download dos scripts junto com os arquivos de linguagem. É importante baixar e seguir a estrutura desses arquivos. Apenas adicione novos campos de texto usando MSG0008,MSG0009,MSG0010............. e por ai vai.
Qualquer mudança na estrutura do arquivo ini irá dar erro.
Na verdade o nome de cada campo não importa, voce pode botar qualquer coisa no nome, mas é bom manter a ordem não é mesmo?
O que importa é a posição deles.
RenanMSV
RenanMSV
Instrutor

Masculino PONTOS : 2503
REPUTAÇÃO : 346
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras : [TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2.

Mensagem por dstaroski em Qui Set 15, 2016 1:55 pm

Parabéns brother! Excelente tutorial! Abraços!
dstaroski
dstaroski
Instrutor

Masculino PONTOS : 4269
REPUTAÇÃO : 1089
Idade : 30
Áreas de atuação : Desenvolvedor .NET Jr. ,Téc. Hardware e Redes, Programação C#, Asp .NET, HTML, CSS, Unity 3D

Respeito as regras : [TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2. Aad8pUi

Ver perfil do usuário http://diegodeoliveira.gamejolt.io/defeattheilluminatis

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2.

Mensagem por WiredD em Qui Set 15, 2016 2:28 pm

Dahoura vlws
WiredD
WiredD
Avançado
Avançado

PONTOS : 1351
REPUTAÇÃO : 14
Respeito as regras : [TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2. WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum