我正在设计一个团结的第一人称射击游戏。我使用FPS控制器来控制播放器。因此,我的鼠标光标大部分时间都不可见,当我按下Escape时,它变得可见。但是,问题是当我从使用FPS控制器的场景加载新场景时,尽管新场景不使用FPS控制器,但鼠标光标仍然不可见。此外,按Escape键不会在新场景中显示鼠标光标。
答案 0 :(得分:1)
您可以通过几种方式解决这个问题,但这是问题的核心:
更改Cursor.visible
字段不依赖于场景,并且在加载新场景时不会重置它。因此,您需要在加载的级别设置Cursor.visible = true;
。
我建议制作一个像CursorVisibility这样的简单脚本来读取这个:
public class CursorVisibility : MonoBehaviour
{
void OnLevelWasLoaded(int level)
{
if (FindObjectOfType<FirstPersonController>() != null)
{
Cursor.visible = false;
}
else
{
Cursor.visible = true;
}
}
}
将其放在每个场景中的空游戏对象上,并自动处理光标可见性。
您也可以放置功能:
void OnLevelWasLoaded(int level)
{
if (FindObjectOfType<FirstPersonController>() != null)
{
Cursor.visible = false;
}
else
{
Cursor.visible = true;
}
}
在没有第一人称控制器的场景中唯一的任何其他脚本中。
只需确保用实际命名的FPS控制器替换脚本的名称:)
答案 1 :(得分:1)
对我来说,解决方案是寻找Cursor.visible
和Screen.lockCursor
参数并进行设置:
Cursor.visible = true;
Screen.lockCursor = false;
或者只是删除lockCursor
行。