728x90
반응형
독학하는 초보의 코딩입니다.
저는 이렇게 코딩을 하였지만 더 좋은 방법이 있으시다면 언제든지 댓글로 알려주세요~
안녕하세요 오늘은 코딩을 최고점수 그리고 2등과 3등의 점수를 나타내는 법을 알려드리려 합니다.
그럼 시작해 볼까용??
우선, 처음으로 스코어가 메인 Scenes에 따로 있다는 가정하에 코딩해 보도록 하겠습니다.
1. 게임을 하는 Scenes의 코딩에 입력할 코드입니다.
여기서 전 게임 오버가 될 시에 그때의 스코어와 최고 스코어만 나오게 코딩해 논 것입니다.
current Score 와 last score 는 내가 지금 게임을 한 스코어
startinghighscore = 최고 스코어
startinghighscore2 = 2등 스코어
startinghighscore3 = 3등 스코어
mino는 캐릭터 이름입니다.
캐릭터가 사라질시에 게임오버가 되어 updatehighscore가 작동하게 해 논것입니다.
아래는 참고로 텍스트 넣어준 것입니다, 그냥 참고 해 주세요
currentScore = 0;
private int startinghighscore;
private int startinghighscore2;
private int startinghighscore3;
public Text highscoreText;
public Text lastScore;
void Start()
{
startinghighscore = PlayerPrefs.GetInt("highscore");
startinghighscore2 = PlayerPrefs.GetInt("highscore2");
startinghighscore3 = PlayerPrefs.GetInt("highscore3"); }
void Update()
{ savesocre();
}
public void UpdateHighScore()
{
if (currentScore > startinghighscore)
{
PlayerPrefs.SetInt("highscore3", startinghighscore2);
PlayerPrefs.SetInt("highscore2", startinghighscore);
PlayerPrefs.SetInt("highscore", currentScore);
}
else if (currentScore > startinghighscore2)
{
PlayerPrefs.SetInt("highscore3", startinghighscore2);
PlayerPrefs.SetInt("highscore2", currentScore);
}
else if (currentScore > startinghighscore3)
{
PlayerPrefs.SetInt("highscore3", currentScore);
}
PlayerPrefs.SetInt("lastscore", currentScore);
}
public void Gameover()
{
if (mino == null)
{ UpdateHighScore();}
}
void savesocre()
{
if (highscoreText != null)
highscoreText.text = PlayerPrefs.GetInt("highscore").ToString();
if (lastScore != null)
lastScore.text = PlayerPrefs.GetInt("lastscore").ToString();
}
이제 이걸 가지고 메인의 스코어 랭킹으로 가줍니다.
public Text highscoreText;
public Text highscoreText2;
public Text highscoreText3;
public Text lastScore;
void Start()
{if (highscoreText != null)
highscoreText.text = PlayerPrefs.GetInt("highscore").ToString();
if (highscoreText2 != null)
highscoreText2.text = PlayerPrefs.GetInt("highscore2").ToString();
if (highscoreText3 != null)
highscoreText3.text = PlayerPrefs.GetInt("highscore3").ToString();
if (lastScore != null)
lastScore.text = PlayerPrefs.GetInt("lastscore").ToString();
}
이렇게 코딩을 해 주면 됩니다.
lastscore는 비교 대상은 있어야 하기에 전에 게임화면에서 코딩했던 그 이름 그대로 적어주셔야 합니다!
" " 안에 있는 말은 꼭 그대로 적어주세요~~~
참고로 이렇게 코딩을 한 후에,
빌드를 해도 스코어에 저장된 경우가 있습니다.
그럴때는 코딩한 곳
void Start()
{ PlayerPrefs.SetInt("highscore", 0);
PlayerPrefs.SetInt("highscore2", 0);
PlayerPrefs.SetInt("highscore3", 0);*/ }
이렇게 다 넣어주세요!!!
반응형
'앱 코딩' 카테고리의 다른 글
유니티) 어느 지점을 지나면 오브젝트 생성 (0) | 2021.04.12 |
---|---|
유니티) 다양한 오브젝트 연속으로 겹치지 않게 나오게 코딩하는 법 (0) | 2021.04.09 |
안드로이드 스튜디오_ 애니메이션 효과 넣어주기 (0) | 2021.03.31 |
drawble로 라운드 보더 ( 코너 선) 만들기 (0) | 2021.03.30 |
drawble에서 라운트 코너 만들기 (0) | 2021.03.29 |