Сам код:
Синтаксис:
Используется csharp
void Awake() {
for (int i = 0; i < labels.Length; i++) {
if (PlayerPrefs.GetString ("Language") == "en_EN") {
labels [i].font = fonts [0];
} else {
labels [i].font = fonts [1];
}
}
presets.options [0].text = LangSys.lng.menu [10];
presets.options [1].text = LangSys.lng.menu [11];
presets.options [2].text = LangSys.lng.menu [12];
presets.options [3].text = LangSys.lng.menu [13];
textQuality.options [0].text = LangSys.lng.menu [14];
textQuality.options [1].text = LangSys.lng.menu [15];
textQuality.options [2].text = LangSys.lng.menu [16];
textQuality.options [3].text = LangSys.lng.menu [17];
anisotropic.options [0].text = LangSys.lng.menu [19];
anisotropic.options [1].text = LangSys.lng.menu [18];
antialiasing.options [0].text = LangSys.lng.menu [19];
vSync.options [0].text = LangSys.lng.menu [19];
vSync.options [1].text = LangSys.lng.menu [18];
for (int i = 0; i < transText.Length; i++) {
if (PlayerPrefs.GetString ("Language") == "en_EN") {
transText [i].font = fonts [0];
transText [i].text = LangSys.lng.menu [i];
} else {
transText [i].font = fonts [1];
transText [i].text = LangSys.lng.menu [i];
}
}
}
for (int i = 0; i < labels.Length; i++) {
if (PlayerPrefs.GetString ("Language") == "en_EN") {
labels [i].font = fonts [0];
} else {
labels [i].font = fonts [1];
}
}
presets.options [0].text = LangSys.lng.menu [10];
presets.options [1].text = LangSys.lng.menu [11];
presets.options [2].text = LangSys.lng.menu [12];
presets.options [3].text = LangSys.lng.menu [13];
textQuality.options [0].text = LangSys.lng.menu [14];
textQuality.options [1].text = LangSys.lng.menu [15];
textQuality.options [2].text = LangSys.lng.menu [16];
textQuality.options [3].text = LangSys.lng.menu [17];
anisotropic.options [0].text = LangSys.lng.menu [19];
anisotropic.options [1].text = LangSys.lng.menu [18];
antialiasing.options [0].text = LangSys.lng.menu [19];
vSync.options [0].text = LangSys.lng.menu [19];
vSync.options [1].text = LangSys.lng.menu [18];
for (int i = 0; i < transText.Length; i++) {
if (PlayerPrefs.GetString ("Language") == "en_EN") {
transText [i].font = fonts [0];
transText [i].text = LangSys.lng.menu [i];
} else {
transText [i].font = fonts [1];
transText [i].text = LangSys.lng.menu [i];
}
}
}
Ошибка происходит в строке "presets.options [0].text = LangSys.lng.menu [10];", если комментирую ее то появляется в следующей строки итд, в итоге выяснил что это происходит во всех строках с LangSys.lng.menu [*], хотя до этого работало нормально
Код LangSys:
Синтаксис:
Используется csharp
public class LangSys : MonoBehaviour {
private string json;
public static Lang lng = new Lang();
void Awake () {
if (!PlayerPrefs.HasKey ("Language")) {
if (Application.systemLanguage == SystemLanguage.Russian || Application.systemLanguage == SystemLanguage.Ukrainian || Application.systemLanguage == SystemLanguage.Belarusian) {
PlayerPrefs.SetString ("Language", "ru_RU");
PlayerPrefs.Save ();
} else {
PlayerPrefs.SetString ("Language", "en_EN");
PlayerPrefs.Save ();
}
}
LangLoad ();
}
void LangLoad () {
#if UNITY_ANDROID && !UNITY_EDITOR
string path = Path.Combine (Application.streamingAssetsPath, "/Languages/" + PlayerPrefs.GetString ("Language") + ".json");
WWW reader = new WWW (path);
while (!reader.isDone) {}
json = reader.text;
#endif
#if UNITY_EDITOR
json = File.ReadAllText (Application.streamingAssetsPath + "/Languages/" + PlayerPrefs.GetString ("Language") + ".json");
lng = JsonUtility.FromJson<Lang> (json);
print (lng.menu[9]);//Без всяких ошибок выводит то что нужно в консоль
print (lng.menu[10]);//Тут тоже
#endif
}
}
public class Lang {
public string[] menu;
}
private string json;
public static Lang lng = new Lang();
void Awake () {
if (!PlayerPrefs.HasKey ("Language")) {
if (Application.systemLanguage == SystemLanguage.Russian || Application.systemLanguage == SystemLanguage.Ukrainian || Application.systemLanguage == SystemLanguage.Belarusian) {
PlayerPrefs.SetString ("Language", "ru_RU");
PlayerPrefs.Save ();
} else {
PlayerPrefs.SetString ("Language", "en_EN");
PlayerPrefs.Save ();
}
}
LangLoad ();
}
void LangLoad () {
#if UNITY_ANDROID && !UNITY_EDITOR
string path = Path.Combine (Application.streamingAssetsPath, "/Languages/" + PlayerPrefs.GetString ("Language") + ".json");
WWW reader = new WWW (path);
while (!reader.isDone) {}
json = reader.text;
#endif
#if UNITY_EDITOR
json = File.ReadAllText (Application.streamingAssetsPath + "/Languages/" + PlayerPrefs.GetString ("Language") + ".json");
lng = JsonUtility.FromJson<Lang> (json);
print (lng.menu[9]);//Без всяких ошибок выводит то что нужно в консоль
print (lng.menu[10]);//Тут тоже
#endif
}
}
public class Lang {
public string[] menu;
}