我一直在努力弄清楚我的游戏用户界面至少发生了两天的情况,并且没有任何进展。
请注意,这是一款手机游戏,但我被要求为Windows构建可视化和演示目的。
所以问题是,当我在Unity编辑器,Android,iOS和Mac平台上运行我的游戏时,UI工作得非常完美,但是当我在Windows上运行游戏时,UI仍能正常工作直到加载特定场景。
这个特定的场景是一个加载屏幕(在主菜单和一个关卡之间),当关卡完成异步加载时,在加载屏幕的脚本中调用一个名为MoveObjects
的方法,移动一些生成的对象在加载屏幕场景中进入关卡场景(这不是问题,因为我已经尝试过没有这种方法并且UI上的问题仍然存在)。
完成此MoveObjects
方法的逻辑后,在加载屏幕中启用一个开始按钮,让玩家点击并开始播放(我确实尝试将开始按钮移动到关卡场景,因为也许它不是当前活动场景的孩子可能是问题,但问题仍然存在)。在这一点上,UI部分被破坏,我的意思是,我可以看到按钮(以及一些其他UI元素,如滚动条)在鼠标移过它们时改变颜色/状态,但我无法点击它们再一次(按钮甚至不会改变到按下状态)。
另请注意,我尝试创建开发版本以查看控制台中是否存在任何错误,并且我注意到此问题也影响旧的UI系统,因此我无法再与开发控制台交互。
另外,请注意,如果我在此问题出现之前抓住并拖动滚动条,并且我一直按住滚动条直到发生这种情况,鼠标会卡在滚动条上,这意味着我无法再与UI交互,但滚动条仍将随鼠标移动。
Screen Space - Overlay
所以不需要摄像头参考。EventSystem
。Time.timeScale
是1。我不确定我还能尝试什么,所以如果有人有任何建议,我将不胜感激。感谢。
P.S:我很遗憾地说,由于机密性,我无法分享任何代码或视觉材料或示例。答案 0 :(得分:0)
对我来说,非工作用户界面的主要来源一直是阻止光线投射的另一个(不可见的)UI对象(透明图像或带有光线投射的大型文本对象)。
这是我根据其他地方发现的信息放在一起的片段,我经常使用它来跟踪在复杂UI环境中屏蔽光线投影的对象。将组件放在文本对象上,确保它至少有几行高,因为结果将显示在另一个下面。
.sport {
display: flex;
align-items: center;
justify-content: center;
}
.sport {
position:absolute;
top:50%;
left:50%;
transform:translate(-50%, -50%);
}