質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

2回答

1465閲覧

unity ハイスコア出したいです

JGNSVK9QDullGUG

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/05/29 11:42

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

unityでベストタイムを表示したいのですが、このプログラミングをunityで動かしてみたらベストタイムのところに「0」っと出てしまいベストタイムが出ません。
おそらく保存されていないから「0」っと出ているのでしょうけど、どうやったら保存されるようになりますか?

エラーメッセージ

該当のソースコード

unityのc#

1ソースコード 2```using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5using UnityEngine.UI; 6using UnityEngine.SceneManagement; 7 8public class zikanstaone : MonoBehaviour 9{ 10 //カウントアップ 11 public static float countup = 0.0f; 12 public static float up = 0.02f; 13 public Text BestTimeText; //ベストタイムを表示するText 14 private float BestTime=100000.4f; //ベストタイム用変数 15 16 17 18 //時間を表示するText型の変数 19 public Text timeText; 20 21 void Start() 22 { 23 PlayerPrefs.DeleteAll(); 24 BestTime = PlayerPrefs.GetFloat("TIME", 0); 25 //保存しておいたベストタイムをキーで呼び出し取得し保存されていなければ0になる 26 BestTimeText.text = "ベストタイム: " + BestTime.ToString(); 27 //ベストタイムを表示 28 } 29 30 31 32 33 34 // Update is called once per frame 35 void OnCollisionEnter(Collision collision) 36 { 37 if (collision.gameObject.CompareTag("pCube1")) 38 { 39 countup = 0; 40 } 41 if (collision.gameObject.CompareTag("Cube2")) 42 { 43 up = 0; 44 } 45 46 } 47 void FixedUpdate() 48 { 49 if (Input.GetKey(KeyCode.R)) 50 { 51 countup = 0; 52 SceneManager.LoadScene("unity1week4"); 53 } 54 if (Input.GetMouseButtonDown(0)) 55 { 56 countup = 0; 57 up = 0.02f; 58 } 59 //時間をカウントする 60 countup += up; 61 62 //時間を表示する 63 timeText.text = "今のタイム: " + countup.ToString("f1") + "秒"; 64 65 66 67 if (countup < BestTime) 68 { 69 70 BestTime = countup; 71 //ベストタイム更新 72 73 PlayerPrefs.SetFloat("TIME", BestTime); 74 PlayerPrefs.Save(); 75 //ベストタイムを保存 76 77 BestTimeText.text = "ベストタイム: " + BestTime.ToString("f1") + "秒"; 78 //ベストタイムを表示 79 } 80 81 } 82 83} 84 85 86### 試したこと 87 88ここに問題に対して試したことを記載してください。 89 90### 補足情報(FW/ツールのバージョンなど) 91 92ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストタイムの初期値が0だから更新されないのではないでしょうか

投稿2021/05/29 22:14

YAmaGNZ

総合スコア10489

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

PlayerPrefs.DeleteAll();

そりゃ、全消ししたらそうなりますよ。

投稿2021/05/29 12:26

fiveHundred

総合スコア10152

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

JGNSVK9QDullGUG

2021/05/29 21:59

PlayerPrefs.DeleteAll();を外しても、ハイスコアのところに0がでてハイスコアが出ないのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問