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

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

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

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

Unity

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

Q&A

1回答

796閲覧

セーブ機能を実装したいけどセーブができない

100js

総合スコア0

C#

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

Unity

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

0グッド

0クリップ

投稿2021/09/07 11:31

前提・実現したいこと

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

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

エラーメッセージ出ずただただセーブできない

エラーメッセージ

### 該当のソースコード using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class akerutwo : MonoBehaviour { //public int stage_num; // スコア変数 //public GameObject ni; public GameObject Popup; public GameObject score_object = null; public static int score_num = 0; //int cose; // Start is called before the first frame update void Start() { PlayerPrefs.GetInt("SCORE", score_num); Text score_text = score_object.GetComponent<Text>(); score_text.text = "Score:" + score_num; //cose=PlayerPrefs.GetInt("Score"); } void OnCollisionEnter(Collision collision) { if (collision.gameObject.CompareTag("kaihou2")) { score_num = 2; PlayerPrefs.GetInt("Score", score_num); PlayerPrefs.Save(); } } // Update is called once per frame void Update() { } public void test() { if (score_num < 2) { Popup.SetActive(true); } if (score_num == 2) { SceneManager.LoadScene("wara6"); } } } ### 試したこと ソースコード前から順に読んでいったけど自分ではおかしなところが見つからなかった。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

y_waiwai

2021/09/07 11:33

どれがセーブしているコードでしょうか
guest

回答1

0

セーブが出来ていないのではなく、ロードが出来ていないのではないでしょうか。
具体的には

C#

1PlayerPrefs.GetInt("SCORE", score_num);

となっていますが、保存した数値が返るのは戻り値であり、score_numとしている引数は本来は(読み込み失敗したときの)デフォルト数値を指定します。
つまり、

C#

1score_num = PlayerPrefs.GetInt("SCORE", 0);

が正しいです。

投稿2021/09/07 11:39

fiveHundred

総合スコア9917

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

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

100js

2021/09/07 22:17

ありがとうございます。 無事、セーブさせました。 次はInputFieldなどで自分のパスワードを書いたらセーブさせているデーターに行くプログラミングを書きたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問