C# Unity3D更新2018.1.f1至2019年后,我收到数千个异常
我在2018年1.1f1版本中编写了一个unity游戏。我想在2019.1.0f2版本中打开它 我将项目设置中的运行时脚本版本从.net 2.0更改为与.net 4.0等效的版本。之后,当我按下播放按钮时,unity会给出数千个NullReferenceException和ArgumentOutOfRangeException 我删除了library、obj和temp文件夹,但不起作用 我认为unity没有看到脚本文件。我不知道该怎么办 是因为被弃用的对象吗 我怎样才能解决这个问题 谢谢 编辑: @科林杨C# Unity3D更新2018.1.f1至2019年后,我收到数千个异常,c#,unity3d,C#,Unity3d,我在2018年1.1f1版本中编写了一个unity游戏。我想在2019.1.0f2版本中打开它 我将项目设置中的运行时脚本版本从.net 2.0更改为与.net 4.0等效的版本。之后,当我按下播放按钮时,unity会给出数千个NullReferenceException和ArgumentOutOfRangeException 我删除了library、obj和temp文件夹,但不起作用 我认为unity没有看到脚本文件。我不知道该怎么办 是因为被弃用的对象吗 我怎样才能解决这个问题 谢谢 编辑
- 所有附加到其游戏对象的脚本
- 所有插件都已加载。重新加载
- 已尝试在visual studio中保存退出、重新打开和生成
- 我在升级到2019年后遇到这些错误。我还将visual studio从2017年升级到2019年。VS2019已经有了unity游戏开发包
- VisualStudio不会抛出任何错误,只是对不推荐的类和方法发出警告
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);
}
}
公共类LoginMenuLanguageSupporter:MonoBehavior{
公共游戏对象注销按钮;
公共游戏对象登录按钮;
公共游戏对象用户名hintinputfield;
公共游戏对象密码hintinputfield;
公共游戏对象记忆;
公共游戏对象日志文本;
公共游戏对象SloganText;
公共游戏对象加载文本;
私人本地化支持本地化支持;
专用语言代码PrevLanguageCode;
void Start()
{
//比尔吉列里
if(GameObject.Find(Settings.Localization))
LocalizationSupport=GameObject.Find(Settings.Localization.GetComponent();
PrevLanguageCode=LocalizationSupport.SelectedLanguage;
SetLanguages();
}
无效更新()
{
if(本地化支持.SelectedLanguage.Code.Equals(PrevLanguageCode.Code))
返回;
PrevLanguageCode=LocalizationSupport.SelectedLanguage;
SetLanguages();
}
void SetLanguages()
{
设置语言(参考注销按钮,“退出”);
设置语言(参考登录按钮,“登录”);
SetLanguage(参考UserNameHintInputField,“用户名”);
SetLanguage(参考PasswordHintInputField,“密码”);
设置语言(参考RememberMe,“RememberMe”);
设置语言(参考LoggingPanelText,“loggingon”);
SetLanguage(参考SloganText,“标语”);
设置语言(参考加载文本,“登录”);
}
void SetLanguage(参考游戏对象go,字符串代码)
{
go.GetComponent().text=string.IsNullOrEmpty(本地化支持.Translate(代码))?go.GetComponent().text:LocalizationSupport.Translate(代码);
}
}
编辑2:
对PrevLanguageCode为空。不显示最后一个。。你需要第一个。。总是把它们按顺序修好1.我仔细检查了错误。但所有这些都是一次又一次的错误。该项目在2018版上运行良好。有些东西没有初始化,因此为空。。如果真的是所有这些,我们无法帮助您从图片中跟踪。。LoginMenuLanguageSupporter.cs上的第30行到底是什么?例如,上面只有“那么多”,找出什么是空的,找出它在哪里,以及为什么现在是空的问题在LoginMenuLanguageSupport.cs类的第30行。至少发布这些代码,因为现在无法帮助您,脚本是否显示在您的项目视图中?它们是否附加到您希望它们附加到的游戏对象?你所有的插件都加载了吗?您是否尝试过保存、退出Unity并重新打开项目(我假设您已经有了备份)?您在升级到2019年后更改脚本后端之前是否遇到这些错误?还是你同时做了两个改变?您是否尝试打开代码编辑器并在那里编译?我见过很多beta/alpha版本之间的切换,通常会通过其中一个操作清除。不要显示最后一个。。你需要第一个。。总是把它们按顺序修好1.我仔细检查了错误。但所有这些都是一次又一次的错误。该项目在2018版上运行良好。有些东西没有初始化,因此为空。。如果真的是所有这些,我们无法帮助您从图片中跟踪。。LoginMenuLanguageSupporter.cs上的第30行到底是什么?例如,上面只有“那么多”,找出什么是空的,找出它在哪里,以及为什么现在是空的问题在LoginMenuLanguageSupport.cs类的第30行。至少发布这些代码,因为现在无法帮助您,脚本是否显示在您的项目视图中?它们是否附加到您希望它们附加到的游戏对象?你所有的插件都加载了吗?您是否尝试过保存、退出Unity并重新打开项目(我假设您已经有了备份)?您在升级到2019年后更改脚本后端之前是否遇到这些错误?还是你同时做了两个改变?您是否尝试打开代码编辑器并在那里编译?我在beta/alpha版本之间看到过很多这种情况,通常通过这些操作之一就可以解决。