2017-09-16 9 views
0

消す表示 https://www.assetstore.unity3d.com/en/#!/content/40465メニューはカーソルは、シングルクリックをするので、似たときにカーソルが消え

  • ゲームジャムメニューテンプレートを取得
  • 標準の アセットからインポートしたFPSコントローラを含む別のシーンを追加します。
  • UI - > start optionsコンポーネントで「シーンを変更」を選択します。

  • エスケープを押してスライダをタッチすると、1回のクリックで のカーソルが消えます。

それは次のようになります。私は、マウスの外観をオフにチェックを入れた場合https://imgur.com/a/hefmP

- > FPSコントローラ内のロックカーソルが、これは発生しませんが、私はまた私のFPSゲームでカーソルを参照してください。

私はCursor.lockState = CursorLockMode.Locked; Cursor.visible = false;を追加しようとしましたが、一時停止中と一時停止中にその逆を追加しようとしましたが、助けになりません。おそらくMouseLook.csはまた、それらを更新しているので:私はカップルFPSControllerポーズメニューではなくはないだろうと、彼らは異なるシーンでもしている

enter image description here

一時停止メニューに入るときにカーソルをロック解除するにはどうすればいいですか?ここで使用できるイベントパターンはありますか?

これもシーンを暗くしますが、それは別の質問です。

+0

これは、C#unityscriptではありません、それは、コードの代わりに、それのスクリーンショットを投稿する方が良いですのでご注意ください。 – Programmer

+0

私はunityscriptタグを間違ってクリックしているに違いありません。私はここに書くことができるいくつかのコード行を持っていません。それは、統一チームによって作られた標準的な資産とシーンの問題です...誰かが望むなら、この2つのシーンでこの最小限のプロジェクトをアップロードします。 @プログラマー – shinzou

答えて

1

スクリプトで使用されているMouseLookスクリプトで修正されています。 1つの解決策は、MouseLookスクリプトを変更することですが、単純な資産更新によってその変更が強制終了されます。

この問題の適切な解決方法は、メニューを開いたときにFirstPersonControllerスクリプトを無効にしてから、そのメニューを閉じるときに有効にすることです。また、無効にする場合は、手動でCursor.lockStateNoneに設定し、カーソルを表示可能に設定します。

以下は、それを処理する簡単な関数です。メニューを開くを閉じるボタンを以下の関数にリンクする必要があります。あなたはそれを呼び出す、閉じるボタンでそれをオープンボタンとtrueでそれにfalseを渡す:

void enableFPS(bool enable) 
{ 
    GameObject fpsObj = GameObject.Find("FPSController"); 
    FirstPersonController fpsScript = fpsObj.GetComponent<FirstPersonController>(); 

    if (enable) 
    { 
     //Enable FPS script 
     fpsScript.enabled = true; 
    } 
    else 
    { 
     //Disable FPS script 
     fpsScript.enabled = false; 
     //Unlock Mouse and make it visible 
     Cursor.lockState = CursorLockMode.None; 
     Cursor.visible = true; 
    } 
} 
+0

それは機能しますが、今は強く結合しています、これは共通ですか? – shinzou

+0

はい。 UnityのFPSの厄介な動作です。それが気に入らない場合は、独自のFPSコードを書いて使用してください。独自のFPSを使用すると、このように動作しないことを確認できます。 – Programmer

関連する問題