C# 游戏在编辑器中运行良好,而不是在构建中

C# 游戏在编辑器中运行良好,而不是在构建中,c#,android,unity3d,C#,Android,Unity3d,我正在做一个游戏,我有一个脚本来保存角色的统计数据。英雄和敌人都使用相同的脚本 实际上有两个脚本。第一个脚本用于游戏设置,确保将哪个玩家设置为可见,将哪个敌人设置为可见。该脚本有如下变量 [Header("Players")] public GameObject LocalPlayer; public GameObject Enemy; 现在在我名为User_stats的第二个脚本中,我想把目标设为英雄=敌人,反之亦然。我在第二个脚本中所做的是,通过执行以下代码在其中调用我的第

我正在做一个游戏,我有一个脚本来保存角色的统计数据。英雄和敌人都使用相同的脚本

实际上有两个脚本。第一个脚本用于游戏设置,确保将哪个玩家设置为可见,将哪个敌人设置为可见。该脚本有如下变量

[Header("Players")]
    public GameObject LocalPlayer;
    public GameObject Enemy;
现在在我名为User_stats的第二个脚本中,我想把目标设为英雄=敌人,反之亦然。我在第二个脚本中所做的是,通过执行以下代码在其中调用我的第一个脚本(FKManage)

私人管理; 然后在我的void start中,我使用了一个名为SetTarget()的方法;这就是定义这两个数组,并告诉它们使用tag player的对象需要使用FKManage脚本中的Target=敌军,反之亦然

GameObject[] protagonistOpponent = GameObject.FindGameObjectsWithTag("Player");
        foreach (GameObject obst in protagonistOpponent)
            obst.GetComponent<User_Stats>().Target = FKManage.Enemy.transform;

        GameObject[] AntagonistOpponent = GameObject.FindGameObjectsWithTag("Enemy");
        foreach (GameObject obst in AntagonistOpponent)
            obst.GetComponent<User_Stats>().Target = FKManage.LocalPlayer.transform;
GameObject[]progationoppost=GameObject.FindGameObjectsWithTag(“玩家”);
foreach(主角对手中的游戏对象obst)
obst.GetComponent().Target=fkmanager.敌军.transform;
GameObject[]敌对对手=GameObject.FindGameObjectsWithTag(“敌人”);
foreach(对手中的游戏对象obst)
obst.GetComponent().Target=fkmanager.LocalPlayer.transform;
它可以很好地工作,但只能在Unity editor中工作。当我为Android构建游戏并在Android下运行时,我的角色什么都不做(因为没有设置目标)

我想知道为什么我的构建在编辑器中无法正常工作?我在哪里犯错?在构建游戏时,这是我在android logcat中遇到的错误


所以我已经解决了这个问题

我所做的是改变了脚本的执行顺序,这是一个非常简单的修复,效果非常好


感谢大家帮助我,特别是@BugFinder和@AykutKaraca

这能回答你的问题吗?嗨,谢谢你的帮助。我已经阅读了整个页面,是的,我理解它所说的,但我认为这并不能解决我的问题,因为我的游戏没有在编辑器中设置空引用,但它在游戏构建中设置了空引用。也请告诉我这是怎么可能的?我是Unity的新手,正在学习,我的意思是,如果我的游戏在编辑器中运行良好,而不是在构建中,那么我永远无法确定我的游戏是否正常,是否可以在手机上运行,而每次我做一个小的更改时都不进行构建。对不起,我的短信太长了。我被这个错误困扰了一周左右。这意味着当你的电脑没有运行时,有些东西不起作用,所以可能是播放器的首选项、文件的访问、Web服务器的响应,这里的任何人都无法猜出你有什么依赖性,但有些东西不起作用,因此不起作用。许多事情不会以同样的方式产生错误,因此有时开始时我认为不会告诉您错误,因此,如果在开始时您分配了一个文件负载,如果这不起作用,那么这些不会被设置。您是否尝试从脚本中的资源加载文件或对象,而不是在inspector中分配?Android文件系统并不像Unity预期的那样工作,它可能在错误的位置上查找该文件。我在加载json文件时遇到了类似的问题。我知道了,所以根据你的答案,我可以看看我的解决方案。嗨@AykutKaraca,我想你是对的。我没有在inspector中指定值。我从另一个脚本中获取该值,该脚本与场景一起加载。我认为你是对的,android系统不像Unity那样工作,因为在Unity中,我的脚本成功地从其他脚本获取了游戏对象,而android Build没有。请解释一下你是怎么修好的?