using UnityEngine; using UnityEngine.Serialization; using System.Collections; namespace Fungus { [CommandInfo("Narrative", "Set Language", "Set the active language for the scene. A Localization object with a localization file must be present in the scene.")] [AddComponentMenu("")] [ExecuteInEditMode] public class SetLanguage : Command { [Tooltip("Code of the language to set. e.g. ES, DE, JA")] public StringData _languageCode = new StringData(); public static string mostRecentLanguage = ""; public override void OnEnter() { Localization localization = GameObject.FindObjectOfType(); if (localization != null) { localization.SetActiveLanguage(_languageCode.Value, true); // Cache the most recently set language code so we can continue to // use the same language in subsequent scenes. mostRecentLanguage = _languageCode.Value; } Continue(); } public override string GetSummary() { return _languageCode.Value; } public override Color GetButtonColor() { return new Color32(184, 210, 235, 255); } #region Backwards compatibility [HideInInspector] [FormerlySerializedAs("languageCode")] public string languageCodeOLD; protected virtual void OnEnable() { if (languageCodeOLD != "") { _languageCode.Value = languageCodeOLD; languageCodeOLD = ""; } } #endregion } }