Unity UGUI 本地化方案 - Localiztion Tool

本文介绍了Unity UGUI本地化方案,包括面临的问题和难点,如文本替换。提出了一种自定义控件`LocalizationText`的解决方案,详细阐述了其工作原理和代码实现。此外,还介绍了一个自动化控件替换工具,用于解决控件引用丢失问题。最后,讨论了进一步的优化方案,如针对特定语言的文本判断和自动设置Key值功能。
摘要由CSDN通过智能技术生成

问题及难点

相信做海外游戏代理的同学一定会遇到需要做本地化的问题,其中资源可以通过替换合图来处理。而文本是其中一个比较难处理的问题。其中主要难点在于UGUI本身没有提供相应的插件,而对于一开始没规划的项目来说,你需要去找出其中所有的外语文本,找到后再将对应Text控件替换成你自定义的控件,替换后再需要填入对应的Key值。这对于策划来说简直是恶梦~

工具的基本原理

LocalizationText控件

UGUI中的Text控件只提供了text属性接口供你进行对文本的设置,那么要实现本地化有下面两种做法:

  • 1.在Text控件初始化后使用代码将其text属性修改,这样的话,我们需要在所有的有Text控件的地方添加相应的修改代码,这显然是不符合可持续发展的。
  • 2.自定义新的Text控件,在编辑器阶段完成对Key值的设置。这种方案需要我们继承Text控件,并修改其输入接口,从修改text改为修改Key,通过Key来得到相应语言的文本。

综上,我们采取第二种方案来实现我们的LocalizationText控件,通过对Key的设置得到文本,如图:
这里写图片描述
有了LocaliztionText我们只需要输入Key**Help**而不需要直接填写帮助二字,通过为不同语言建立映射表我们就可得到对应语言的Help的文本。这里写图片描述

相关代码实现

这里我主要是先去看了UGUI源码,根据其中Text的实现做了修改。

using System;
using UnityEngine.UI;
using UnityEngine;

namespace Localization
{
    public class LocalizationText : Text
    {
        #region Param


        [Header("Localization")]
        [SerializeField]
        
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值