2016-04-25 137 views
0

我在统一设计第一人称射击游戏。我使用FPS控制器来控制播放器。因此,我的鼠标光标大部分时间都保持不可见,当我按下Escape键时,它就变得可见。但问题是,当我从使用FPS控制器的场景加载新场景时,虽然新场景不使用FPS控制器,但鼠标光标仍然不可见。此外,按下Escape键不会在新场景中显示鼠标光标。鼠标光标在团结中是隐形的

回答

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控制器实际上命名的名称替换脚本的名称:)

+0

请标记答案,如果它帮助你。谢谢:) –

+0

没有为我工作;什么工作虽然,是添加 'Cursor.visible = true; Screen.lockCursor = false;' 到脚本的开始处理程序。 – dirkk0