KraGenDeveloper
@KraGenDeveloper
Unity Developer

Не работает скрипт в игре В чем проблема?

В общем есть такой скрипт. В Юньке всё пахает как надо и без ошибок а в билде ничего не работает
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ShopManager : MonoBehaviour
{
    [Header("Indicators")]
    [SerializeField] private GameObject[] skinIndocator;
    [SerializeField] private GameObject[] effectIndicator;
    
    [Header("Effects")]
    [SerializeField] private Text[] textOnEffectButton;
    
    [Header("Skins")] 
    [SerializeField] private Text[] textOnButton;
    
    [Header("Other")]
    [SerializeField] private Text Money;
    [SerializeField] private Text Gold;
    [SerializeField] private GameObject SkinTab;
    [SerializeField] private GameObject EffectTab;
    [SerializeField] private GameObject OtherTab;
    [SerializeField] private Button skin;
    [SerializeField] private Button effect;
    [SerializeField] private Button other;
    [SerializeField] private Button buyNoAds;
    [SerializeField] private GameObject imageBuy;
    
    public void Update()
    {
        int actualSkin = PlayerPrefs.GetInt("Skin");
        int actualEffect = PlayerPrefs.GetInt("Effect");
        ActualSkin(actualSkin);
        ActualEffect(actualEffect);
        BuyedSkins();
        BuyedEffects();
        ActiveTab();
        InfoPanel();
        
        if(PlayerPrefs.GetInt("NoAds") == 1){
            buyNoAds.interactable = false;
            imageBuy.SetActive(true);
        }
        else buyNoAds.interactable = true;
    }
    public void OpenTab(int tab){
        if(tab == 1){
            SkinTab.SetActive(true);
            EffectTab.SetActive(false);
            OtherTab.SetActive(false);
        }
        else if(tab == 2){
            SkinTab.SetActive(false);
            EffectTab.SetActive(true);
            OtherTab.SetActive(false);
        }
        else if(tab == 3){
            SkinTab.SetActive(false);
            EffectTab.SetActive(false);
            OtherTab.SetActive(true);
        }
    }
    public void ActualSkin(int number)
    {
        for (int i = 1; i < skinIndocator.Length; i++)
        {
            skinIndocator[i].SetActive(false);
        }
        skinIndocator[number].SetActive(true);
    }
    public void ActualEffect(int num)
    {
        for (int i = 1; i < effectIndicator.Length; i++)
        {
            effectIndicator[i].SetActive(false);
        }
        effectIndicator[num].SetActive(false);
        textOnButton[num].text = ("Take off");
    }
    public void BuyedSkins()
    {
        for (int i = 1; i < skinIndocator.Length; i++)
        {
            int buyed = PlayerPrefs.GetInt($"Skin{i}");
            if (buyed == 1)
            {
                if(Application.systemLanguage == SystemLanguage.English){
                    textOnButton[i].text = ("Set");
                }
                else if(Application.systemLanguage == SystemLanguage.Russian){
                    textOnButton[i].text = ("Выбрать");
                }
                else if(Application.systemLanguage == SystemLanguage.Ukrainian){
                    textOnButton[i].text = ("Обрати");
                }
                else{
                    textOnButton[i].text = ("Set");
                }
            }
            else if (buyed != 1 && i != 7 && i != 8)
            {
                if(Application.systemLanguage == SystemLanguage.English){
                    textOnButton[i].text = ("Buy");
                }
                else if(Application.systemLanguage == SystemLanguage.Russian){
                    textOnButton[i].text = ("Купить");
                }
                else if(Application.systemLanguage == SystemLanguage.Ukrainian){
                    textOnButton[i].text = ("Придбати");
                }
                else{
                    textOnButton[i].text = ("Buy");
                }
            }
            else if (buyed != 1 && i == 7 | i == 8)
            {
                if(Application.systemLanguage == SystemLanguage.English){
                    textOnButton[i].text = ("Get");
                }
                else if(Application.systemLanguage == SystemLanguage.Russian){
                    textOnButton[i].text = ("Получить");
                }
                else if(Application.systemLanguage == SystemLanguage.Ukrainian){
                    textOnButton[i].text = ("Отримати");
                }
                else{
                    textOnButton[i].text = ("Get");
                }
            }
        }
    }
    public void BuyedEffects()
    {
        for (int i = 1; i < effectIndicator.Length; i++)
        {
            int buyed = PlayerPrefs.GetInt($"Effect{i}");
            if (buyed == 1)
            {
                if(Application.systemLanguage == SystemLanguage.English){
                    textOnEffectButton[i].text = ("Set");
                }
                else if(Application.systemLanguage == SystemLanguage.Russian){
                    textOnEffectButton[i].text = ("Выбрать");
                }
                else if(Application.systemLanguage == SystemLanguage.Ukrainian){
                    textOnEffectButton[i].text = ("Обрати");
                }
                else{
                    textOnEffectButton[i].text = ("Set");
                }
            }
            else if (buyed != 1)
            {
                if(Application.systemLanguage == SystemLanguage.English){
                    textOnEffectButton[i].text = ("Buy");
                }
                else if(Application.systemLanguage == SystemLanguage.Russian){
                    textOnEffectButton[i].text = ("Купить");
                }
                else if(Application.systemLanguage == SystemLanguage.Ukrainian){
                    textOnEffectButton[i].text = ("Придбати");
                }
                else{
                    textOnEffectButton[i].text = ("Buy");
                }
            }
        }
    }
    public void ActiveTab()
    {
        if(SkinTab.activeSelf){
            skin.interactable = false;
        }
        else if(!SkinTab.activeSelf){
            skin.interactable = true;
        }
        if(EffectTab.activeSelf){
            effect.interactable = false;
        }
        else if(!EffectTab.activeSelf){
            effect.interactable = true;
        }
        if(OtherTab.activeSelf){
            other.interactable = false;
        }
        else if(!OtherTab.activeSelf){
            other.interactable = true;
        }
    }
    public void InfoPanel()
    {
        Money.text = (""+PlayerPrefs.GetInt("Money"));
        Gold.text = (""+PlayerPrefs.GetInt("Gold"));
    }
}

С кода видно что текст должен менятся в зависимости от языка но вот в игре вообще ни на какой не меняется.
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Если условия у вас исчерпывающие, стоит использовать для последнего else иначе есть вариант не попасть вообще ни в одну из веток и остаться ни с чем.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы