鼠标光标在unity中是不可见的
Mouse cursor is invisible in unity
我正在用 unity 设计第一人称射击游戏。我使用 FPS 控制器来控制播放器。因此,我的鼠标光标大部分时间都是不可见的,当我按 Escape 时,它会变得可见。
问题是当我从使用 FPS 控制器的场景加载新场景时,尽管新场景不使用 FPS 控制器,但鼠标光标仍然不可见。而且,按Escape键在新场景中不显示鼠标光标。
您可以通过几种方式处理该问题,但问题的核心在于:
更改 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 控制器的实际名称:)
对我来说,解决方案是寻找 Cursor.visible
和 Screen.lockCursor
参数并设置:
Cursor.visible = true;
Screen.lockCursor = false;
或者干脆删除 lockCursor
行。
我正在用 unity 设计第一人称射击游戏。我使用 FPS 控制器来控制播放器。因此,我的鼠标光标大部分时间都是不可见的,当我按 Escape 时,它会变得可见。
问题是当我从使用 FPS 控制器的场景加载新场景时,尽管新场景不使用 FPS 控制器,但鼠标光标仍然不可见。而且,按Escape键在新场景中不显示鼠标光标。
您可以通过几种方式处理该问题,但问题的核心在于:
更改 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 控制器的实际名称:)
对我来说,解决方案是寻找 Cursor.visible
和 Screen.lockCursor
参数并设置:
Cursor.visible = true;
Screen.lockCursor = false;
或者干脆删除 lockCursor
行。