ゲーム制作技術録

主にUnity/Godot4関連の技術ブログです

【Unity2021.3LTS】【Localization】スクリプトから「Local Variables」の値を変更する

コードから「Local Variables」の値を変更したいんだッ!!
という記事です。

調べても全然出てこなかったので備忘録。

Unity 2021.3 LTS
UniversalRP 12.1
Localization 1.3.2

前提

「Localization」について解説はしません。
その辺は他の方の記事を参考にしてください。

また、「Text (TMP)」と「Localize String Event」の準備は終わっているものとします。

Local Variables

Variableの追加

これも特に解説はしません。

TableEntryをそれぞれテキトーに作成し、Local Variablesもテキトーに設定します。
今回はStringのVariableを追加しました。

取得する

LocalizeStringEvent.StringReferenceからVariable Nameをブラケットで囲い、指定することでVariableを取得することができます。

気を付けなければならないのが「as 種類」でVariableの種類を指定してやる必要があるというところです。
今回は「sample_variable」という名称でStringVariableを取得し、期待する出力値は「sample_string」です。

実行結果

正常に値が出力できています。

Variableの編集

何も考えることなく、値を代入するだけです。
今回は末尾に「_new」と付けて新しく代入してみます。

stringVariable.Value = "sample_string_new";

実行結果

値が入れ替わっているのが確認できました。

おまけ

一行で書くとこうなります。

(localizeStringEvent.StringReference["sample_variable"] as StringVariable).Value = "sample_string_new";