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:
Movimentaçao player
[TUTORIAL] IA Simples
COMO POSSO FAZER O INIMIGO MORRER COM TIRO?
Ajustar o Brilho do LensFlare de Acordo com a Distância
CONTROLE ARCADE PARA JOGO DE CORRIDA
MUDAR FLOAT NO FIM DE UMA ANIMAÇÃO
[TUTORIAL] IA Simples Parte 2 (Atirar)
Instanciar objetos aonde mira
Publicando Apk Parte 2
[DEMO] Survival Block
Aprimoramento IA Inimiga
Batalha de Canhão
[RESOLVIDO] Camera Collider
Todos os inimigos morrem
[____TÓPICO LIVRE____] FALE O QUE QUISER
Canal de tutoriais android
Area Para modeladores
Inimigo ao seguir flutua [ajuda]
Chamar Metodo
Gerador de códigos
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Duvida sobre patrulha aleatória
Demo de jogo para testarem...
Criação de uma mensagem notificação em objeto 3d no unity
[TUTORIAL] Fazer um VOLANTE com UI, para Android
[DUVIDA] Como destruir um GameObject (cubo etc...) sem destruir seus "afilhados"
[Duvida] Como fazer uma luz se desativar ao ficar longe dela
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
GRAFICO BUGADO [MOBILE]
Duvida sobre array de gameobject
ERRO NO APK
ANIMAÇÃO
sincronizar um Variável String multiplayer
DUVIDAS VARIADAS
Home Simulator 2017 (Estilo The Sims em 1ª Pessoa) (Download Grátis)
Publicando Apk na PlayStore
Curar vida ao coletar itens
(Dúvida) Rotacionar roda
Sistema de tráfego
ObjetoCair
Existe alguma forma de fazer multiplayer por lan ou por bluethooth?
Duvida Script
converter para C#
Animação de movimento
Modelos 3D para uso gratuito ou comercial
Ajuda com jogos em flash
[RESOLVIDO] Dano No Player Ajuda erro
[PEDIDO] Designers ou Entendedores (Capa,Menu e ToolTip) 3 Imagens
Como fazer parar de seguir em uma distancia determinada
Meus modelos 3D em fase de experimento
Game Resistência
Lampião Vs Zombies - FORMAÇÃO DE EQUIPE - Jogo 2D
Criando Inteligencia Artificial Para BOSS.
Problema Com Menu Inicial !!
Tutorial rpg?
Criar um objeto preso em apenas um lado
Inventario equipando roupas - Leia mas para saber
Animação não esta ativando na hora do pulo
COMO POSSO FAZER UM MULTIPLAYER?
Menu principal não funciona no mobile
tenho que alterar os scripts para transfomar um game para Android????
Movimentação, sem Rigidbody
dash estilo megaman x, suavizar
[TUTORIAL] Mensagem aparecer na tela conforme a distância do jogador (Unity 5)
Como criar um sistema d interação cm objetos atraves do raycasthit?
RESOLVIDO Script de ligar/desligar lanterna Unity 5 Ultima Versao
Script para recarregar cena
como chamar void do objeto em que o RayCast bateu?
modificar a agua (Tsunami e outros)
bolleana [mobile]
Nav Mesh em mapa Aleatorio
Animar meu personagem (pedido)
drop Down Converter Texto Para imagem
Criar uma animação antes de começar a fase
CONTROLE DE UM CARRO PARA MOBILE
Criar chat para Android
[TUTORIAL] Ligar e Desligar Lanterna
QUERO CRIAR UM SCRIPT PARA UM SIMULADOR DE CARRO
MUDANÇA DE SCENA
Ia inimiga pequeno erro
[Meu Jogo [Aircraft- Space Guardian]] Testem porfavor !
Duvida sobre movimentação
Dúvida: Movimentação de Personagem 2D
RagDoll + Download Free -- feito por um gringo
Como permanecer mirando?
chamar animação [mobile]
Tutorial de RTS
JOGO DE PETECA(JOGAR UMA BOLINHA NA OUTRA)
[Pedido] Link de uma versão do sdk que funcione ;-;
Meu personagem na Realidade Aumentada fica tremendo
Audio Player C#
Jogo para Android, testem por favor
Jogos 2d - caminho do objeto antes de ele ser lançado
Colocar blocos e destruir os mesmos ;-;
Cemetery scene
Bocha 2017 (Bocce)
Script C# Objeto rotacionar de acordo com o player sem ser filho.
Como fazer lançamento na direção da camera ?
Machados para usar como quiser
Hoje à(s) 7:53 pm
Hoje à(s) 7:47 pm
Hoje à(s) 7:44 pm
Hoje à(s) 7:38 pm
Hoje à(s) 7:30 pm
Hoje à(s) 3:51 pm
Hoje à(s) 3:28 pm
Hoje à(s) 3:02 pm
Hoje à(s) 2:39 pm
Ontem à(s) 11:50 pm
Ontem à(s) 10:14 pm
Ontem à(s) 7:22 pm
Ontem à(s) 6:08 pm
Ontem à(s) 5:00 pm
Ontem à(s) 4:43 pm
Ontem à(s) 3:22 pm
Ontem à(s) 3:08 pm
Ontem à(s) 2:13 pm
Ontem à(s) 12:58 pm
Ontem à(s) 11:47 am
Ontem à(s) 10:53 am
Ontem à(s) 10:41 am
Ontem à(s) 10:13 am
Ontem à(s) 7:26 am
Ontem à(s) 12:26 am
Ontem à(s) 12:10 am
Ontem à(s) 12:09 am
Ontem à(s) 12:05 am
Ontem à(s) 12:02 am
Seg Mar 20, 2017 11:58 pm
Seg Mar 20, 2017 11:55 pm
Seg Mar 20, 2017 9:10 pm
Seg Mar 20, 2017 7:57 pm
Seg Mar 20, 2017 6:41 pm
Seg Mar 20, 2017 6:10 pm
Seg Mar 20, 2017 4:31 pm
Seg Mar 20, 2017 8:10 am
Dom Mar 19, 2017 11:32 pm
Dom Mar 19, 2017 8:50 pm
Dom Mar 19, 2017 8:20 pm
Dom Mar 19, 2017 12:06 pm
Sab Mar 18, 2017 10:31 pm
Sab Mar 18, 2017 10:01 pm
Sab Mar 18, 2017 8:26 pm
Sab Mar 18, 2017 8:06 pm
Sab Mar 18, 2017 6:53 pm
Sab Mar 18, 2017 5:31 pm
Sab Mar 18, 2017 9:52 am
Sab Mar 18, 2017 9:41 am
Sab Mar 18, 2017 7:23 am
Sex Mar 17, 2017 11:51 pm
Sex Mar 17, 2017 10:02 pm
Sex Mar 17, 2017 3:21 pm
Sex Mar 17, 2017 12:42 pm
Sex Mar 17, 2017 10:47 am
Qui Mar 16, 2017 11:16 pm
Qui Mar 16, 2017 9:33 pm
Qui Mar 16, 2017 9:32 pm
Qui Mar 16, 2017 9:28 pm
Qui Mar 16, 2017 9:18 pm
Qui Mar 16, 2017 9:16 pm
Qui Mar 16, 2017 9:09 pm
Qui Mar 16, 2017 9:08 pm
Qui Mar 16, 2017 9:07 pm
Qui Mar 16, 2017 9:06 pm
Qui Mar 16, 2017 8:59 pm
Qui Mar 16, 2017 8:56 pm
Qui Mar 16, 2017 8:52 pm
Qui Mar 16, 2017 8:48 pm
Qui Mar 16, 2017 8:44 pm
Qui Mar 16, 2017 8:44 pm
Qui Mar 16, 2017 8:40 pm
Qui Mar 16, 2017 8:20 pm
Qui Mar 16, 2017 7:33 pm
Qui Mar 16, 2017 5:32 pm
Qui Mar 16, 2017 5:32 pm
Qui Mar 16, 2017 5:14 pm
Qui Mar 16, 2017 5:12 pm
Qui Mar 16, 2017 10:49 am
Qua Mar 15, 2017 7:56 pm
Qua Mar 15, 2017 7:08 pm
Qua Mar 15, 2017 5:24 pm
Qua Mar 15, 2017 5:03 pm
Qua Mar 15, 2017 4:38 pm
Qua Mar 15, 2017 3:26 pm
Qua Mar 15, 2017 3:17 pm
Qua Mar 15, 2017 2:58 pm
Qua Mar 15, 2017 2:31 pm
Qua Mar 15, 2017 11:50 am
Qua Mar 15, 2017 9:22 am
Ter Mar 14, 2017 11:14 pm
Ter Mar 14, 2017 8:03 pm
Ter Mar 14, 2017 4:34 pm
Ter Mar 14, 2017 11:18 am
Ter Mar 14, 2017 9:47 am
Seg Mar 13, 2017 11:55 pm
Seg Mar 13, 2017 10:55 pm
Seg Mar 13, 2017 10:38 pm
Seg Mar 13, 2017 1:52 pm
zZAndersonZz
Gabriel César O
Gabriel César O
AnderGames
Gabriel César O
lucasfera15
Matrirxp
hackernew404
Paizudo
rafaelllsd
Matrirxp
AndyShow
ffabim
rafaelllsd
PauloFR
MikaelSteam
PauloFR
bravoent
Matrirxp
Ghosthy
DuViDoSo34
arnaldojunior
Édipo
Phillip
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
lucasfera15
Khilua
PauloFR
AndyShow
Paizudo
willtuck
rafaelllsd
rafaelllsd
IanLuan
John Rambo
kalielson
willtuck
MikaelSteam
joabr
Luiz Mauro TCC
bravoent
AndyShow
AndyShow
joabr
kalielson
BatataName
Callyde Jr
John Rambo
Callyde Jr
IanLuan
MarcosSchultz
Junim
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Phillip
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
kalielson
MarcosSchultz
MarcosSchultz
Junim
Junim
Gabriel César O
Gabriel César O
Gabriel César O
Lukynhasfera70
Junim
Junim
Junim
Junim
MateusWTP
victorgx22
dstaroski
IgorFporto
BatataName
IgorFporto
sabbath
FPR Software
kalielson
weslleyFx
Creat Games
joabr
AndyShow
Junim
victorgx22
Mic4el

[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 : 1669
REPUTAÇÃO : 321
Á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 : 738
REPUTAÇÃO : 154
Idade : 32
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 : 1669
REPUTAÇÃO : 321
Á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 : 909
REPUTAÇÃO : 226
Idade : 27
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Desenvolvimento Android

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 WiredD em Qui Set 15, 2016 2:28 pm

Dahoura vlws
avatar
WiredD
Avançado
Avançado

PONTOS : 516
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