}

유니티 I2Localization GlobalParameters기능을 사용하여 특정 Param을 런타임에 정하게 하기

Global Param을 사용하는 이유

etc-image-0
Global Param사용하기

 

Global Param을 사용하지 않고 다국어를 번역하게 될 경우 글씨 위치가 맞지 않아 불편함을 겪게 됩니다. 예를 들면 아래와 같습니다. 

 

[한국어의 경우] 발견된 이상 개수 :                         7
[영어의 경우   ] Total Number Of Anomalies : 7

 

위와 같이 글씨 위치가 맞지 않게 되는 문제가 있었습니다.

 

그래서 7의 경우 발견된 이상 현상의 개수이므로 해당 Value를 Param으로 지정해주었습니다.

 

Param을 컨트롤 하는 방법은 Local과 Global이 있습니다.


Local로 Param 컨트롤하기

etc-image-1
Local

Local의 경우 위와 같이 미리 컴포넌트를 이용해서 특정 Param을 컨트롤 할 수 있습니다.

 


Global로 Param 컨트롤하기

etc-image-2etc-image-3
Global

Global로 Param을 컨트롤하기 위해서는 스크립트를 따로 제작해주어야 합니다. 

또한, I2 Localize 컴포넌트에 {[ ... ]} 형식으로 맞춰주어야 합니다.

using I2.Loc;

namespace IMP
{
    public class GlobalParametersForReport : RegisterGlobalParameters
    {
        public  override string GetParameterValue( string ParamName )
        {
            if (ParamName == "TotalText")
                return AnomalyReports.AnomalyReport.TotalAnomalies.ToString();           
            
            if (ParamName == "DiscoveredCount")
                return AnomalyReports.AnomalyReport.DiscoveredCount.ToString();

            if (ParamName == "RemainingCount")
                return AnomalyReports.AnomalyReport.RemainingCount.ToString();

            return null;
        }
    }
}

 

RegisterGlobalParameters 인터페이스를 상속받아야 하며, GetParameterValue함수를 오버라이딩해줍니다.

ParamName의 경우 런타임에서 번역할 Param들을 적으면 됩니다. 

 


 

유니티 가장 강력한 번역도구 I2 Localization을 소개합니다!

I2 Localization란? Unity에서 사용할 수 있는 번역 시스템입니다. UI, 2D, TextMesh Pro와 같은 주요 컴포넌트들에 사용가능하며 개발자가 다양한 플랫폼(PC, 모바일 등)에서 로컬화(번역)된 경험을 제공할

wlsdn629.tistory.com

 

해당 에셋을 이용해서 번역을 쉽게 해보는 것은 어떠신가요?