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 Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Como colocar GUI.Button na frente de GUI.Window?
como fazer o personagem rolar em 2D
Efeitos letras de cinema para UI
Como Detectar um objeto sem ser por tag e nem por nome ???
Divulguem este meu jogo!
Colocar Gifs em uma UI Unity 5?
Como carregar a cena mais rápido, ao apertar um botão ???
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Formacão de equipe "Death Zone"
Rede sociais
como fazer uma objeto se mover sozinho?
Sistema de anuncios na Unity 5.6 bugado
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Unity Banco de Dados
Como trocar o Material na unity 3d?
ROTAS
Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Alguém pode fazer um rig pra mão do meu personagem?
Formando Equipe JOGO SURVIVAL/RPG
Prefab De GUI fica com um X
Preciso de Designer/Artista Para Card Game 2D
Como ativo uma void ?
[TUTORIAL] Sistema de Entregas + GPS!
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
[SUPER ATUALIZAÇÃO] - Android - Night Hunter RPG, Faça um teste e avalie! Alpha #5
✖ Projeto HOSPICE Horror Game !! ✖
Como integrar Unity e GitHub.
Square
Como não destruir um objeto depois de chamar um cena.
Como posso movimentar meu personagem sempre 1 f no angulo X
Como faço para importar um asset de dentro da unity?
Como dar save e load em um objeto instanciado?
MANTER TELA DO CELULAR LIGADA
Tirar Fotos no Unity 5 FPS
Tem como controlar a posição de uma particula?
como faço para transformar uma list em Array?
Como carregar imagens da pasta ( Arquivos e não Sprites ) via script.
[DÚVIDA] Como faço pra importar texturas do PC para o jogo in-game?
[DUVIDA] Verificar se um texto é um email
Como Detectar toques e destruir objetos no jogo
Duvida sobre o Unet
[RESOLVIDO] Camera FPS atravessa paredes
Baixos Brasil - Jogo de Carro Brasileiro!
PC Gamer!
Como acessar o Emission do Material e mudar a cor via script
Trocando a texture do terreno com script
Alguem Conhece algum jogo famoso desenvolvido no Photon?
visualizador de ritmo
Curso de unity presencial
Adicionar marcador de Tempo no jogo
(Dúvida) Photon - Slot de salas criadas.
BUG COM NAVMESH Alguem Sabe Arrumar?
ERRO SCRIPT
[TUTORIAL] Spawn de objetos aleatorios em lugares aleatorios
ferr2D vale a pena?
Itemlist
Teste de jogo multiplayer ILHAS
Ilumição
[Dúvida] Como fazer um corpo rígido receber velocidade em direção ao mouse.
(Animator)Voltar a um estado de animação mais nao executar a mesma
Modelagem Uvm
Precisamos de modeladores
Rigidbody2D AddForce - Como adicionar uma força oneshot.
SCRIPT TIRO - UNITY 3d
duvida
Frameworks/tutoriais para jogo 2D?
Mesmo material mas objeto mais claro
Machado PBR | 3D Axe with PBR textures.
Em breve Ilhas Multiplayer, sobrevivencia PVP E PVM
Text multiplayer
[TUTORIAL] Avião Script
Como faço para a musica continuar tocando quando muda de cena?
[TUTORIAL] Luz Principal,Luz de Freio,Piscas para Carro,Moto,Caminhão,Ônibus,Etc...
como posso colocar tempo em qualquer script?
SCRIPT ISOMETRICO PARA ROTACIONAR O PLAYER COM MOUSE
MEU JOGO DE TERROR EM DESENVOLVIMENTO E BLOGGUER
Verificar quantos objetos tem a seguinte tag na scena
Time
Grave no Som da Unity!
ESSE EO MEU JOGO QUE EU ESTOU DESENVOLVENDO (VERSAO ALPHA)
Assesar Script De Outra Script
R7 - GOOH (resident evil 7)
Formação de equipa para o Jogo Until the last
Suspensão carro com raycast
como criar um botao dentro do if() (em C# pq quero padronizar tudo na mesma linguagem)
Arquivos de Expanssão OBB
Formação de equipe para jogo estilo Rust/DayZ
[DUVIDA]como girar sprite somente no eixo X em direção do mouse
GRAVIDADE não é compatível com Camera.main.ScreenToViewportPoint ?
Recrutamento para jogo de sobrevivencia estilo DayZ/Rust/H1Z1
-[SCRIPT DE POSIÇÕES ]-
[Duvida] Unity5 - Physics2D.Raycast não obedece distância máxima.
como posso fazer sons dos passos do inimigo
Unity - Car engine sound - Primeiro teste
Dúvida sobre particulas
[RESOLVIDO] Executar animação após um X segundos
Como indentificar que estou escrevendo [Unity.UI inputField]
[RESOLVIDO] Blender - Mesh com ossos bugados
[RESOLVIDO] OntriggerEnter Bugado
Hoje à(s) 10:20 pm
Hoje à(s) 10:06 pm
Hoje à(s) 9:44 pm
Hoje à(s) 9:36 pm
Hoje à(s) 7:38 pm
Hoje à(s) 6:03 pm
Hoje à(s) 5:57 pm
Hoje à(s) 5:49 pm
Hoje à(s) 3:17 pm
Hoje à(s) 3:02 pm
Hoje à(s) 1:33 pm
Hoje à(s) 8:13 am
Hoje à(s) 7:54 am
Hoje à(s) 7:07 am
Hoje à(s) 2:39 am
Ontem à(s) 9:58 pm
Ontem à(s) 9:40 pm
Ontem à(s) 8:53 pm
Ontem à(s) 8:34 pm
Ontem à(s) 8:09 pm
Ontem à(s) 6:29 pm
Ontem à(s) 4:51 pm
Ontem à(s) 4:47 pm
Ontem à(s) 3:33 pm
Ontem à(s) 3:30 pm
Ontem à(s) 3:29 pm
Ontem à(s) 11:48 am
Ontem à(s) 8:44 am
Ontem à(s) 6:40 am
Ontem à(s) 2:14 am
Sex Out 20, 2017 9:44 pm
Sex Out 20, 2017 9:11 pm
Sex Out 20, 2017 9:00 pm
Sex Out 20, 2017 8:45 pm
Sex Out 20, 2017 8:14 pm
Sex Out 20, 2017 11:24 am
Sex Out 20, 2017 12:43 am
Sex Out 20, 2017 12:33 am
Qui Out 19, 2017 5:01 pm
Qui Out 19, 2017 3:15 pm
Qui Out 19, 2017 2:45 pm
Qui Out 19, 2017 11:38 am
Qua Out 18, 2017 11:54 pm
Qua Out 18, 2017 11:28 pm
Qua Out 18, 2017 10:28 pm
Qua Out 18, 2017 5:10 pm
Qua Out 18, 2017 3:21 pm
Qua Out 18, 2017 3:18 pm
Qua Out 18, 2017 1:56 pm
Qua Out 18, 2017 1:10 pm
Qua Out 18, 2017 3:08 am
Qua Out 18, 2017 12:29 am
Ter Out 17, 2017 9:57 pm
Ter Out 17, 2017 9:42 pm
Ter Out 17, 2017 9:36 pm
Ter Out 17, 2017 7:04 pm
Ter Out 17, 2017 5:52 pm
Ter Out 17, 2017 5:33 pm
Ter Out 17, 2017 4:44 pm
Ter Out 17, 2017 3:42 pm
Ter Out 17, 2017 3:39 pm
Ter Out 17, 2017 2:13 pm
Ter Out 17, 2017 12:16 pm
Ter Out 17, 2017 11:37 am
Ter Out 17, 2017 9:58 am
Ter Out 17, 2017 9:27 am
Ter Out 17, 2017 1:53 am
Seg Out 16, 2017 8:06 pm
Seg Out 16, 2017 5:27 pm
Seg Out 16, 2017 4:26 pm
Seg Out 16, 2017 3:08 pm
Seg Out 16, 2017 10:38 am
Seg Out 16, 2017 9:44 am
Seg Out 16, 2017 6:53 am
Seg Out 16, 2017 12:53 am
Dom Out 15, 2017 9:00 pm
Dom Out 15, 2017 8:35 pm
Dom Out 15, 2017 7:05 pm
Dom Out 15, 2017 6:06 pm
Dom Out 15, 2017 5:59 pm
Dom Out 15, 2017 5:41 pm
Dom Out 15, 2017 4:57 pm
Dom Out 15, 2017 4:11 pm
Dom Out 15, 2017 4:04 pm
Dom Out 15, 2017 3:29 pm
Dom Out 15, 2017 2:44 pm
Dom Out 15, 2017 1:59 pm
Dom Out 15, 2017 1:42 pm
Dom Out 15, 2017 1:37 pm
Dom Out 15, 2017 12:44 pm
Dom Out 15, 2017 11:25 am
Dom Out 15, 2017 10:03 am
Dom Out 15, 2017 9:19 am
Dom Out 15, 2017 9:09 am
Dom Out 15, 2017 8:23 am
Dom Out 15, 2017 1:39 am
Sab Out 14, 2017 11:57 pm
Sab Out 14, 2017 11:30 pm
Sab Out 14, 2017 7:07 pm
erifmeurer
contaska
MRX
luiz12345
cody0033
Encracker
Dom3000
Takuiash
dstaroski
dstaroski
glauco
dstaroski
dstaroski
Callyde Jr
Jardel Morais
Joao07
robinson.sandi
Ghosthy
fecirineu
Fagner
Manawydan
Phph09
Alerson Software
dstaroski
dstaroski
dstaroski
Phph09
Phph09
Phph09
rafaelllsd
Dom3000
Phph09
Phph09
Phph09
Dom3000
Dom3000
kalielson
kalielson
Phph09
Phph09
Valakinhas
TylerDurden
Duarte
Duarte
richardson
marino96
fecirineu
richardson
fariscolucas
fariscolucas
rafaelllsd
rafaelllsd
endersoneneilsa
natanael.olimpio
alxgames
Callyde Jr
Unidade3d5
WesClaudino
EvertonSantos
BRGC
michelly
Phph09
ScorpionG4mer
EvertonSantos
diegopds
gabrielgrk
Fagner
ScorpionG4mer
Unidade3d5
richerd
Matrirxp
colosso16
Joao07
Callyde Jr
EvertonSantos
EvertonSantos
felipehobs1
Callyde Jr
Duarte
glauco
luis gustavo
thales.ulisses
heliab125
marcelinodns
luis gustavo
Duarte
CodeZone
contaska
contaska
thales.ulisses
Weslley
dimmuo
glauco
dstaroski
Phph09
eusouoglaydson
Weslley
Fagner
alxgames

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

Ver o tópico anterior Ver o tópico seguinte 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)
avatar
RenanMSV
Instrutor

Masculino PONTOS : 1890
REPUTAÇÃO : 326
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :

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
avatar
artplayer
ProgramadorMaster

Masculino PONTOS : 1151
REPUTAÇÃO : 244
Idade : 33
Respeito as regras :

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.
avatar
RenanMSV
Instrutor

Masculino PONTOS : 1890
REPUTAÇÃO : 326
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :

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!
avatar
dstaroski
Instrutor

Masculino PONTOS : 2134
REPUTAÇÃO : 528
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

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
avatar
WiredD
Avançado
Avançado

PONTOS : 739
REPUTAÇÃO : 14
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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