【问题标题】:How to fix Blue Screen appearing after GameObject is removed in Unity 2d Project如何修复在 Unity 2d 项目中删除 GameObject 后出现的蓝屏
【发布时间】:2019-05-21 20:49:35
【问题描述】:

我已成功构建和运行 Unity 2D 游戏,但在我的一次操作中开始收到蓝屏。具体来说,当我关闭一个弹出窗口并删除其所有子游戏对象时,整个游戏屏幕变为深蓝色(主摄像头的默认背景颜色)。如果您单击右侧区域,游戏的音乐仍然会播放并且点击仍然会记录(我仍然可以按后退按钮,只是看不到它)。

如果我删除 1 个游戏对象,则不会出现此问题。但是一旦我必须移除 2 个游戏对象,整个屏幕就会变成蓝色。

这是我删除我的游戏对象的功能,以防万一它有帮助,它在实际正确删除游戏对象时非常有效(要删除的游戏对象是从预制件创建的)。我认为问题可能出于某种原因与相机有关,但我不知道为什么会在此功能上发生。

public void Remove(int index)
        {
            float toggleWidth = toggle.GetComponent<RectTransform>().sizeDelta.x;
            DestroyImmediate(scrollSnap.pagination.transform.GetChild(scrollSnap.NumberOfPanels - 1).gameObject);
            scrollSnap.Remove(index);
            scrollSnap.pagination.transform.position += new Vector3(toggleWidth / 2f, 0, 0);
        }

我没有在控制台中收到任何错误或警告。移除多个 GameObject 时只是蓝屏

编辑:

原来我的主 Canvas 的 planeDistance 正在从 100 更改为 3200。我仍然不知道为什么会发生这种更改...但是对于其他有类似问题的深蓝色的人屏幕出现在他们游戏的中间或开始时,请在 Inspector 中检查您的画布和相机的值。简单地控制 planeDistance 对我有用!

【问题讨论】:

  • 这可能与相机有关,我假设您正在使用正交相机进行 2D 游戏。运行游戏并将 unity 置于 3D 模式并查看相机相对于您的对象的位置
  • 感谢 Tom,我是 Unity 的新手,不认为这是一个解决方案。我注意到画布的平面距离发生了巨大变化,但我仍然不确定为什么它会从上面的代码中改变。现在调查一下

标签: visual-studio unity3d


【解决方案1】:

我通过将游戏置于 3d 模式解决了这个问题,并意识到相机的位置离精灵很远,只需更改 z 轴并再次进入 2d 模式......希望它会对某人有所帮助。

【讨论】:

    【解决方案2】:

    当我开始我的精灵学习游戏时,在示例场景旁边制作了一个新场景。忘了这一切。 当我不得不发布它时,在构建设置中,我选择了错误的场景。所以它发布了一个空场景=D而不是我的游戏=D

    【讨论】:

    • 最好将这种“我发现错误”文本添加到原始问题中。如果您确实找到了问题的实际答案,请回答您自己的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多