2016-08-25 2 views
1

메인 게임에 단 하나의 레벨이 있고 다른 장면은 게임 오버 텍스트 스코어가 "재시작"으로 표시되는 "끝"인 VR 게임을 만들고 있습니다. 메인 화면을 다시 불러옵니다.) 그리고 나가기 버튼.게임 다시 시작시 점수 재설정

내 문제는 내 ScoreManager 스크립트로이 스크립트를 사용하여 M은 아래입니다 : 나는 너무 끝 장면에서이 점수를 원하고이 PlayerPrefs

를 사용하여 m대로 작동하지만 다시 시작에서를 클릭하면 주요 문제가있다 끝 장면, 게임은 메인 장면을 다시로드하지만 그 점수는 여전히 이전 게임의 값과 같습니다. 나는 그것이 0으로 설정되기를 원합니다. 도와주세요 !!!!

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); 

     } 
    } 
} 

나는 또한 점수를 삭제하는 공공 정적 무효 DELETEKEY (INT 점수)를 사용했다,하지만 아무것도 :(

+0

점수를 다음 단계로 재설정하려면 'PlayerPrefs'를 사용하는 이유는 무엇입니까? – Programmer

답변

0

당신은 DeleteKey(int score)을 시도했다가 일어나지하지만이 작동하지 않았다. 코드는 를하지 않습니다은 어디서나 DeleteKey 기능을 가지고 있습니다. 그 기능을 사용하는 방법을 모르면 아래 코드를 사용하는 방법을 실제로 보여줄 것입니다. 실제로 사용 방법을 알고 있지만 질문에 언급 된대로 작동하지 않으면 전화를 겁니다 그 후에 PlayerPrefs.Save() 키를 삭제하고 즉시 업데이트해야합니다.

각 게임 종료 후 점수를 재설정하려면 코드를 OnDisable() 함수에 넣으십시오.

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

게임이 시작되면, 그것을 다시 당신이 다음 OnEnable()에 위의 기능을 변경 Awake() 기능에했던 것처럼 현재 score를 얻으려면.

+0

당신의 소중한 답장을 보내 주셔서 감사합니다. 여기에 두 개의 장면이 있습니다. 하나는 메인 장면이고 하나는 종료 장면입니다. 메인 장면 스코어에서 게임을 할 때, 적을 죽일 때마다 올바르게 업데이트되고 점수가 표시됩니다. 장면은 플레이어가 메인 장면에서 점수를 얻는 점수를 표시하지만 사용자/플레이어가 게임을 다시 시작하면 이전 점수 또한 메인 장면에 표시됩니다. 즉, 플레이어가 게임을 다시 시작할 때마다 메인 장면이 이전에 재생 된 점수를 수집합니다 메인 장면 스코어 보드, –

+0

에 추가하십시오. 내가 말한 것을했는데, 그것은 최종 장면 스코어 값 "0"을 만들었고 두 가지 장면에 대해 동일한 스크립트를 사용하고 있습니다. –