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:
Dúvida sobre Instanciate
posso divulgar o fórum em meu site?
Como ativa ou desativar o botão usando outro botão
build settings parou de funcionar!!!
Não consigo mais abrir projeto nenhum na Unity!
como desativar um script usando botão na unity
como fazer botão simular uma tecla do teclado para jogos android unity
Clonar partícula na cena.
Preciso de ajuda com GetMouseButton para dar play em audio
TRIGGER DE ANIMAÇÃO
Otimização
[RESOLVIDO] Rotação de um gameobject sem que os filhos se alterem?
Trigger Raio e Trovão
Não consigo desativar script de gameObject (C#)
Alguém poderia mudar esse script pra botão
Como desativar e habilitar o Skinned MeshRenderer?
Como transformar um vídeo em espaço editável na Unity?
[TUTORIAL] Inimigo seguir e atacar Player ao encostar
Trocar Personagem/Skin
Como faz para o jogo rodar mesmo quando minimizado?
Alguem poderia me ajudar com combo 2d?
Jogador pode escolher que tipo de pos processamento usar nas configurações?
Como se faz um sistema de combo pra mobile
Como fazer com que collider detecte colisao de objeto especifico?
Problema mudar de sprite sempre que seja adicionado um novo sprite a lista
Colocar video no unity
Imagem excedendo o limite da tela. Como resolver?
Erro no Android
Como abrir uma empresa de games?
Informação Importante sobre o Edge Collider 2D
Como consigo aquele efeito de lanterna imagem abaixo
Como posso usar a função OnClick nesse script
[TUTORIAL] Como carregar uma cena em segundo plano?
[Tutorial] Sistema de Combos (Mobile e PC)
Personagem sofre dando e continua de onde parou com condição.
Como Abrir Porta do Carro (Capo,PortaMalas, Portas) Mirando Nelas
[RESOLVIDO] Várias faixas de música
[RESOLVIDO] int Random.Range(int min, int max) para geração procedural ?
Como fazer o som funcionar de acordo com a velocidade do objeto
Alto falante Vibrar
[RESOLVIDO] Luz no interior
[TUTORIAL] Como Fazer com que as Luzes Iluminem apenas o que você deseja
Traduções e Dublagens de games
[RESOLVIDO] Cono mudar a Tag por script?
[RESOLVIDO] Qualidade do sprite - Compression
[TUTORIAL] Unity 3D - AnimationCurve
[RESOLVIDO] Partículas com imagem
[RESOLVIDO] DUVIDA SOBRE ATIVAR UM GAMEOBJECT ATRAVÉS DE UMA CONDIÇÃO
NavMesh não consegue reproduzir sprits de um jogador
NavMesh não faz animação do jogador
Bom dia amigos compro assets do meu interesse!
Criar Ranking Online
[TUTORIAL] ScrollView rapida e facil de fazer
colocar imagem no fórum
Unity ou Game Maker Studio
[TUTORIAL] Tocar audios de uma lista em uma sequência que se repete
Error CS0246, não sei o que fazer
Como faço pra um colisor não reconhecer outro colisor sem usar IsTrigger
[RESOLVIDO] Alteração de nomes e rastreamento das mudanças
Som unity
CHAVE DE ASSINATURA
[TUTORIAL]identificar se está no controle ou teclado
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
Não estou conseguindo ativar o evento do onClick após instanciar o botão
Exportar Modelo 3D da Unity
Duvida sobre Spawn
Dúvida sobre volatile
[UE4] Por favor me digam como me livrar do motion blur!
[RESOLVIDO] Float to transform
[RESOLVIDO] mudar a cor quando a personagem passa
Como ativar um 'Panel'
Como faço pra desligar e ligar outro text?
Como Faço Para Ativar/Desativar Material Por Script ?
como modificar o script para receber e registar o dano no personagem
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
Meu personagem está tomando repulsão da parede
Problemas com IEnumerator
Meu personagem ta tremendo quando toca em alguma coisa
[TUTORIAL] Como criar tiro no Unity usando Raycast
Scripts travados
Como faço para mudar a posição de um objeto para perto de outro.
Alteração de personagens durante o jogo // parte 2
Como se faz uma grid, apenas e somente uma grid em 3D?
meu primeiro jogo pronto
quero corverter uma int em string
Como mudar a posição de um objeto constantemente sem estar na void Update
Como conseguir fazer para minha moto dar grau
[RESOLVIDO] Alteração de personagens durante o jogo
Como fazer um retrovisor leve para android?
Preciso de um script para andar de moto alguem consegue me ajudar
Como consigo fazer esse efeito de escurecer o ambiente ao atacar?
Como fazer pra selecionar um inimigo pra atacar de varios unity 2d
Setparent Photon
duvida em sistema de Horror de como pegar e solta objeto
[UE4] Como fazer cutscene com o próprio personagem?
Plataforma Flutuante
OS Tycoon (DEVLOG) - Crie seu próprio sistema operacional
[RESOLVIDO] Grande X vermelho
Como desativo o vsync em projeto para celular?
Hoje à(s) 12:09 pm
Hoje à(s) 11:57 am
Hoje à(s) 11:54 am
Hoje à(s) 11:49 am
Hoje à(s) 9:09 am
Ontem à(s) 4:27 pm
Ontem à(s) 2:32 pm
Ontem à(s) 2:25 pm
Ontem à(s) 12:41 pm
Ontem à(s) 10:12 am
Ontem à(s) 9:47 am
Ontem à(s) 3:34 am
Ontem à(s) 1:06 am
Qui Jan 21, 2021 10:59 pm
Qui Jan 21, 2021 7:56 pm
Qui Jan 21, 2021 5:11 pm
Qui Jan 21, 2021 3:47 pm
Qui Jan 21, 2021 11:17 am
Qui Jan 21, 2021 10:45 am
Qui Jan 21, 2021 9:54 am
Qua Jan 20, 2021 11:55 pm
Qua Jan 20, 2021 11:53 pm
Qua Jan 20, 2021 11:07 pm
Qua Jan 20, 2021 9:52 pm
Qua Jan 20, 2021 5:29 pm
Qua Jan 20, 2021 4:58 pm
Qua Jan 20, 2021 3:56 pm
Qua Jan 20, 2021 3:53 pm
Qua Jan 20, 2021 9:26 am
Ter Jan 19, 2021 10:30 pm
Ter Jan 19, 2021 8:28 pm
Ter Jan 19, 2021 4:48 pm
Ter Jan 19, 2021 6:49 am
Seg Jan 18, 2021 11:39 pm
Seg Jan 18, 2021 9:31 pm
Seg Jan 18, 2021 10:47 am
Seg Jan 18, 2021 10:34 am
Dom Jan 17, 2021 10:54 pm
Dom Jan 17, 2021 6:28 pm
Dom Jan 17, 2021 2:07 pm
Dom Jan 17, 2021 12:21 pm
Dom Jan 17, 2021 11:19 am
Dom Jan 17, 2021 11:17 am
Dom Jan 17, 2021 11:15 am
Dom Jan 17, 2021 1:44 am
Sab Jan 16, 2021 6:40 pm
Sab Jan 16, 2021 11:43 am
Sab Jan 16, 2021 11:12 am
Sex Jan 15, 2021 8:20 pm
Sex Jan 15, 2021 1:39 am
Qui Jan 14, 2021 9:53 pm
Qui Jan 14, 2021 7:44 pm
Qui Jan 14, 2021 5:35 pm
Qui Jan 14, 2021 3:55 pm
Qui Jan 14, 2021 2:07 pm
Qui Jan 14, 2021 1:51 pm
Qui Jan 14, 2021 12:56 pm
Qua Jan 13, 2021 6:57 pm
Qua Jan 13, 2021 2:45 pm
Ter Jan 12, 2021 11:14 pm
Ter Jan 12, 2021 8:14 pm
Ter Jan 12, 2021 3:16 pm
Seg Jan 11, 2021 6:26 pm
Seg Jan 11, 2021 5:55 pm
Seg Jan 11, 2021 10:51 am
Dom Jan 10, 2021 7:18 pm
Dom Jan 10, 2021 6:21 pm
Dom Jan 10, 2021 3:24 pm
Dom Jan 10, 2021 2:31 pm
Dom Jan 10, 2021 2:29 pm
Dom Jan 10, 2021 10:44 am
Sab Jan 09, 2021 9:30 pm
Sex Jan 08, 2021 9:14 am
Sex Jan 08, 2021 7:07 am
Sex Jan 08, 2021 1:02 am
Sex Jan 08, 2021 12:33 am
Qui Jan 07, 2021 7:31 pm
Qui Jan 07, 2021 5:31 pm
Qui Jan 07, 2021 3:51 pm
Qui Jan 07, 2021 3:49 pm
Qui Jan 07, 2021 12:12 am
Qua Jan 06, 2021 7:40 pm
Qua Jan 06, 2021 4:57 pm
Qua Jan 06, 2021 7:36 am
Ter Jan 05, 2021 5:29 pm
Ter Jan 05, 2021 1:58 pm
Ter Jan 05, 2021 10:35 am
Ter Jan 05, 2021 5:22 am
Ter Jan 05, 2021 1:00 am
Ter Jan 05, 2021 12:02 am
Seg Jan 04, 2021 4:33 pm
Seg Jan 04, 2021 3:24 pm
Seg Jan 04, 2021 3:15 pm
Seg Jan 04, 2021 2:23 pm
Seg Jan 04, 2021 2:06 pm
Seg Jan 04, 2021 8:56 am
Dom Jan 03, 2021 8:18 pm
Dom Jan 03, 2021 9:48 am
Dom Jan 03, 2021 4:14 am
Pokedlg
dutrabr100
Pokedlg
SauloeArthur
sopturn
Vans 123
SauloeArthur
Pokedlg
Charlesoff
Pokedlg
Fagner
ADSK
Pokedlg
wooZbr
Pokedlg
Pokedlg
dutrabr100
SauloeArthur
dutrabr100
NKKF
dutrabr100
dutrabr100
Pokedlg
SamoelBanner
Pokedlg
SauloeArthur
NKKF
orph
dutrabr100
acefogo
Fagner
Vans 123
amoraleite
Pokedlg
acefogo
dutrabr100
Pokedlg
dutrabr100
Pokedlg
savtoi
dragongirl
dutrabr100
Rangel Oblivion
dutrabr100
JoelMJunior
MarcosSchultz
dragongirl
dutrabr100
Ren Allen
Ren Allen
LucasGamerFx
SauloeArthur
NKKF
dutrabr100
SauloeArthur
Pokedlg
SauloeArthur
dutrabr100
Alexandre Santos
Pokedlg
starfreddybou69
diegopds
Super
dutrabr100
TIKO
dutrabr100
SauloeArthur
lesgoy
Fagner
Pokedlg
dutrabr100
Pokedlg
SauloeArthur
redPRO
glauco
Op3000
Pokedlg
JulioWinchester
SauloeArthur
SauloeArthur
Leozitu
Ren Allen
speedluk
SauloeArthur
BatataBugada54321
Pokedlg
Pokedlg
Ren Allen
Fagner
123
Pokedlg
macinhadeborracha
MRX
giowde
lesgoy
TIKO
Micco
Leonardo André
lesgoy

[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 : 3080
REPUTAÇÃO : 352
Á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

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
Instrutor

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

https://artplayergames.com

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 : 3080
REPUTAÇÃO : 352
Á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

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 : 4882
REPUTAÇÃO : 1113
Idade : 31
Áreas de atuação : Unity 3D

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

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 : 1927
REPUTAÇÃO : 14
Respeito as regras : [TUTORIAL] Trocar jogo de linguagem facilmente com UI Dropdown v2. WvDYdlf

Voltar ao Topo Ir em baixo

Voltar ao Topo


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