この記事でのバージョン
Unity 2019.4.1f1
はじめに
今回はUnityで作ったゲームから、Steamで設定されている言語を取得する方法です!
イメージとしては以下のような感じ。
![]() |
Steamworks.NETの導入
まずプロジェクトにSteamworks.NETを導入するのですが、これをそのまま入れるより
Steamworks.NET-Exampleというサンプル付きのものを導入した方が色々便利です。
なお上記のGitHubからプロジェクトを取得したら、
![]() |
Assets以下を自分のプロジェクトへコピーするだけで導入は完了です。
![]() |
Steamの言語の取得
次にSteamの言語の取得方法ですが、取得の前にSteamManager.Initializedを参照して初期化を行います。
なお、Steamを起動していない場合等はfalseになり初期化失敗です。
//SteamManager等を使うのに必要 using Steamworks;
//初期化 if (!SteamManager.Initialized) { Debug.LogWarning("SteamManagerの初期化に失敗しました"); return; }
本題のSteamで設定されている言語の取得にはSteamUtils.GetSteamUILanguageを使います。
//Steamで設定されている言語の取得 Debug.Log($"SteamのUIで設定されている言語 : {SteamUtils.GetSteamUILanguage()}");
![]() |
なお、Steamの言語設定は右上のアカウント詳細を選んだ先にある
![]() |
言語オプションから行います。
![]() |
また、SteamApps.GetCurrentGameLanguageで現在プレイ中のゲームの言語を取得する事も可能です。
Debug.Log($"SteamのUIで設定されている言語 : {SteamUtils.GetSteamUILanguage()}"); Debug.Log($"現在プレイ中のゲームの言語 : {SteamApps.GetCurrentGameLanguage()}");
![]() |
このゲームの言語はSteamPipeのデポにある
![]() |
ベース言語の管理から設定でき、
![]() |
ユーザは各ゲームのプロパティにある、
![]() |
言語の欄から変更可能です。(最初のインストール時にも設定出来たはず)
![]() |
ただし、ゲームの言語はゲーム側(プログラムで)変更する事が出来ないっぽいので、
ゲーム内で言語設定出来るようにする場合はベース言語の管理は設定しない方が楽かもしれません。
ちなみに各言語がどういう文字列かはAPI言語コードから確認できますが、
![]() |
Application.systemLanguageで取得出来る端末に設定されている言語とは
japaneseとJapanese、koreanaとKoreanというように微妙に違うので注意が必要です。










