Unity3d 为什么在Unity 5.2中单击“再次播放”按钮重放场景时游戏视图变暗?

Unity3d 为什么在Unity 5.2中单击“再次播放”按钮重放场景时游戏视图变暗?,unity3d,unity5,Unity3d,Unity5,当我在Unity中单击“再次播放”按钮重新加载游戏场景时,游戏视图会自动变暗,就像根本没有设置skybox照明设置一样 游戏场景第一次运行良好,文件已保存,再次尝试重播时,灯光设置将关闭。这是Unity 5版本中的一个照明错误吗?检查您是否正在Destroy()ing不应该销毁的对象。 例如,您可能会遇到以下情况: public class LightInstantiator : MonoBehaviour { public GameObject lightPrefab; pri

当我在Unity中单击“再次播放”按钮重新加载游戏场景时,游戏视图会自动变暗,就像根本没有设置skybox照明设置一样


游戏场景第一次运行良好,文件已保存,再次尝试重播时,灯光设置将关闭。这是Unity 5版本中的一个照明错误吗?

检查您是否正在
Destroy()
ing不应该销毁的对象。 例如,您可能会遇到以下情况:

public class LightInstantiator : MonoBehaviour
{
    public GameObject lightPrefab;
    private GameObject mySceneLight;

    void Start()
    {
        mySceneLight = Instantiate(lightPrefab);
    }

    void OnDestroy()
    {
        DestroyImmediate(lightPrefab); // BUG: you destroy the Prefab instead of the instance
    }
}
这个示例脚本为我实例化了场景灯光,并在自身被销毁时再次将其销毁。这是完全合法的,但我无意中引入了一个bug:在我打算销毁实例化灯光(mySceneLight)的地方,我实际上销毁了预置

在第一次开始时,一切似乎都很好,很轻松。但是,当停止并重新启动场景时,Unity会将(先前已销毁的)预设输入到我的脚本中,然后脚本将无法实例化起作用的灯光:场景保持黑暗

我曾经遇到过类似的事情。我不知道这是否仍然可行,但可能值得一试

事后思考:


这甚至可能更容易。在第一次运行时,通过将预设灯光的强度设置为0,可能会意外地修改代码中的预设灯光。由于它是一个预置,Unity可能不会重置它,在第二次运行时,预置灯光强度仍然为0。

我遇到了相同的问题,通过在“窗口>照明>场景”中取消选中“自动”(用于灯光贴图的自动烘焙)并单击“构建”来修复它


我也有同样的问题。在“混合照明”部分关闭烘焙全局照明。

您能尝试向我们展示一些代码吗?也就是说,与您的照明设置以及如何重新启动计算机有关的任何内容scene@Canvas你好这是我第一次玩这个场景,一切看起来都很完美。我通过进入Unity内的窗口->照明进行验证。这场戏开始了。我停下来再重新启动,整个环境在游戏视图窗格中变暗,LCOME到堆栈溢出。这不是一个好的提问方式。发布一些图片(或代码)将帮助我们更好地理解问题!请阅读,作为一个开始。我认为你需要更清楚“停下来,再开始”。你的意思是在Unity编辑器中,单击play按钮停止游戏,然后再次按下它开始游戏吗?或者你有一个游戏按钮,你已经在游戏本身编码?我想这里的大多数人都认为你做了一个游戏中的按钮,但也许你说的是编辑器。如何将照明重置回正常状态?(重新启动Unity?@31eee384 Hi.)。。这不是游戏中的按钮,我说的是unity编辑器,我通过点击play按钮来停止和启动游戏,只是为了看看我的游戏视图是如何工作的。首先,默认的灯光设置很好,问题发生在我停下来然后重新开始时,默认灯光在游戏视图中熄灭并变暗。谢谢你的脚本。但在我的游戏视图中,我只使用了默认的环境光设置skybox。也许我应该在Unity编辑器(菜单窗口->照明)中检查一些设置。请提供建议。谢谢@Thomas的回答。现在对我有用。