2016-08-25 5 views
1

私は、メインシーンには1つのレベルしかなく、もう1つのシーンはゲームオーバーテキストスコアが再スタートで表示される「終了」のVRゲームを作成していますメイン・シーンをリロードします)と終了ボタン。ゲームの再起動時にスコアをリセットする

私の問題は私のScoreManagerスクリプトとしてこのスクリプトを使用して、Mは以下の通りです:私はあまりにも終了シーンで、このスコアをしたい、これはPlayerPrefs

を使用してメートルとして機能していますが、再起動時にクリックすると、メインの問題は、あります終了シーン、ゲームはメインシーンをリロードするが、そのスコアはまだ前のゲームの同じ値を持っています。私はそれをゼロに設定したい。助けてください !!!!

using UnityEngine; 
using UnityEngine.UI; 
using System.Collections; 

namespace CompleteProject 
{ 
    public class ScoreManager : MonoBehaviour 
    { 
     public static int score ;  // The player's score. 
     Text text;      // Reference to the Text component. 

     void Awake() 
     { 
      // Set up the reference. 
      text = GetComponent<Text>(); 
      score = 0; 
      score = PlayerPrefs.GetInt("Score"); 
     } 

     void Update() 
     { 

      // Set the displayed text to be the word "Score" followed by the score value. 
      text.text = "Score: " + score; 
      PlayerPrefs.SetInt("Score", score); 

     } 
    } 
} 

私もスコアを削除するために、公共の静的な無効削除キー(int型スコア)を使用していたが、何も:(

+0

スコアを次のレベルでリセットしたい場合、なぜ 'PlayerPrefs'を使うのですか? – Programmer

答えて

0

あなたはDeleteKey(int score)を試してみましたが起こっていないが、それはうまくいきませんでした。あなたのコードはをしませんにはの機能がありますが、その機能の使用方法がわからない場合は、以下のコードでその使い方を知ることができます。それ以降はPlayerPrefs.Save()と表示されますので、キーを削除して直ちに更新してください。

各ゲームの後でスコアをリセットするには、コードをOnDisable()関数に入れます。

void OnDisable() 
{ 
    PlayerPrefs.DeleteKey("Score"); 
    PlayerPrefs.Save(); 
} 

ゲームが始まるときにそれをリセットするには、あなたがAwake()機能で行ったように、その後、OnEnable()に上記の機能を変更するには、現在のscoreを取得します。

+0

あなたの貴重な返事をいただきありがとうございます、私はここで2つのシーンを持っています、1つはメインシーンで、1つは終了シーンです、メインシーンスコアでゲームをしているときに敵を殺すたびにスコアを表示します。シーンを取得すると、メインシーンでどのスコアを獲得してもスコアを表示しますが、ユーザー/プレイヤーがゲームを再開すると、前回のスコアもメインシーンに表示されます。メインシーンのスコアボード、 –

+0

に追加しました。これまで何を言っていたかは、エンドシーンのスコア値 "0"ともう一つのことです。 –

関連する問題