Unity3D после обновления с 2018.1.f1 до 2019 я получаю тысячи исключений - PullRequest
1 голос
/ 09 мая 2019

У меня была игра для единства, написанная в версии 201f 1.1f1.Я хотел открыть его в версии 2019.1.0f2.

Я изменил версию сценариев времени выполнения в настройках проектов с эквивалента .net 2.0 до .net 4.0.После этого, когда я нажимаю кнопку воспроизведения, Unity дает тысячи значений nullReferenceExceptions и ArgumentOutOfRangeExceptions.

Я удалил папки библиотеки, obj и temp, но не сработал.

Я думаю, что Unity не видит сценарийфайлы.Я не знаю, что для этого сделать.

Это из-за устаревших объектов?

Как мне решить эту проблему?

Спасибо,

enter image description here

Редактировать :

@ Колин Янг

  • Все сценарии, прикрепленные к их игреОбъекты
  • Все плагины загружены.Перезагружен снова.
  • Попытка сохранения, повторного открытия и построения в Visual Studio.
  • Я получаю эти ошибки после обновления до 2019. Я также обновляю Visual Studio с 2017 до 2019. Против 2019 уже единствопакет разработки игры.
  • Visual Studio не выдает никаких ошибок, просто предупреждает об устаревших классах и методах.

@ BugFinder, @LeafLayer Это файл сценария, который вы упомянули.Тысячи ошибок действительно происходит в методе обновления.Я понимаю, что после вашего комментария.

public class LoginMenuLanguageSupporter : MonoBehaviour {

    public GameObject LogoutButton;
    public GameObject LoginButton;
    public GameObject UserNameHintInputField;
    public GameObject PasswordHintInputField;
    public GameObject RememberMe;
    public GameObject LoggingPanelText;
    public GameObject SloganText;
    public GameObject loadingText;

    private LocalizationSupport LocalizationSupport;
    private LanguageCode PrevLanguageCode;
    void Start()
    {
        //localization bilgileri 
        if (GameObject.Find(Settings.Localization))
            LocalizationSupport = GameObject.Find(Settings.Localization).GetComponent<LocalizationSupport>();

        PrevLanguageCode = LocalizationSupport.SelectedLanguage;
        SetLanguages();
    }

    void Update()
    {
        if (LocalizationSupport.SelectedLanguage.Code.Equals(PrevLanguageCode.Code))
            return;

        PrevLanguageCode = LocalizationSupport.SelectedLanguage;
        SetLanguages();
    }

    void SetLanguages()
    {
        SetLanguage(ref LogoutButton, "exit");
        SetLanguage(ref LoginButton, "login");
        SetLanguage(ref UserNameHintInputField, "username");
        SetLanguage(ref PasswordHintInputField, "password");
        SetLanguage(ref RememberMe, "rememberme");
        SetLanguage(ref LoggingPanelText, "loggingon");
        SetLanguage(ref SloganText, "slogan");
        SetLanguage(ref loadingText, "loggingon");
    }

    void SetLanguage(ref GameObject go, string code)
    {
        go.GetComponent<Text>().text = string.IsNullOrEmpty(LocalizationSupport.Translate(code)) ? go.GetComponent<Text>().text : LocalizationSupport.Translate(code);
    }

}

Редактировать 2:

Да. PrevLanguageCode равно нулю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...