[Unity]FPSゲームでスライダーを使い、感度設定画面を作る方法(2024)(画像付き)

動画ではPキーを押すことでオプション画面が開くようになっています。
オプション画面では感度を変更することができ、右にいくほど感度が速くなり、左にいくほど遅くなります。
さらにゲームオーバーになった後再び再プレイしても感度が前のままで保存されているのが確認できるかと思います。これの作り方を解説していきます!

こちらでオプション画面を開いた際にゲームの進行を止める方法を解説しているのでよければ参考にしてください。


スライダーを作る

まずはスライダーを追加しましょう。ヒエラルキーの「+」マークから「UI」→「スライダー」とクリックしていきます。

次にオプション画面にスライダーを移動して、適当に装飾します。
また、インスペクターのスライダーの「Min Value」と「Max Value」の数値を変えておきましょう。ここの数値を変えることであとで感度を変更できるようになった際にマックス感度の速さなどを変えることができます。

そして操作キャラのスクリプトを開き、コードを追加していきます。色々書いてありますが、基本的に画像赤丸の中のコードだけ見てもらうと大丈夫です。

(1番目の赤丸の説明)まずは「using UnityEngine.UI;」を追加します。これがないとUIをスクリプトでイジれません。

(2番目の赤丸の説明)次に赤丸の二つのコードを入力します。それぞれスライダーを読み込むためのコードとスライダーの数値によって感度を変えるための変数ですね。

(3番目の赤丸の説明)「void Update()」の中に2番目の赤丸で作った変数(画像だと「v」)をスライダーの位置によって数値が変わるようにします。とりあえず画像と同じようなコードを入力すれば大丈夫です。

次にキャラクターの視点を操作するコードを開きます。
画像では下のコードが視点操作のコードで、人によって違うと思いますが、大体画像のように変数をかけたり足したりしていると思います。それの最後にさっき追加した変数(画像だと「v」)をかけます。
画像のコードの最後の方と同じようにしてもらえば大丈夫です。

これで感度の速さがスライダーに合わせて変化するようになります。


感度をセーブする

次に感度をセーブする方法を解説していきます。
必要なコードは赤丸に入っているコードでまた一つずつ解説していきます。

(1番目の赤丸の説明)まずはセーブしたいタイミングに「Save();」というコードを書きます。これはシンプルにSaveという関数を実行するコードです。画像ではオプション画面を閉じる関数の中に入れているのでオプションを閉じた瞬間にSave関数が実行されることになりますね。そしてSave関数「public void Save()」を作ります。
中には「PlayerPrefs.SetFloat(“SliderValue”, sr.value);」というコードを書きます。(“”の中は何でも大丈夫です)このコードがセーブしてくれるコードになります。

(2番目の赤丸の説明)次にセーブしたものをロードするコードをロードしたい箇所に入力しましょう。赤丸には「 sr.value = PlayerPrefs.GetFloat(“SliderValue”, 0);」というコードがありますが、これがロードするコードです。
画像ではオプションを開くコードの中に書いているので、オプションを開いた瞬間にロードされることになります。

解説するとオプションを切る瞬間にセーブされるので、感度をMAXにした場合、その後オプションを閉じるとMAXにした感度がセーブされ、オプションを押した瞬間にMAXにした感度がロードされることになります。

コードはこれで完成です。最後にSrの項目ができているのでスライダーを入れておきましょう。

こちらに他にもFPSシューティング作りで役立つ情報が集まった記事があるので良ければ参考にしてください。

[Unity]FPSシューティングゲームの作り方、参考になる記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です