오랜만의 포스팅입니다! 오늘은 유니티 C# 스크립트 함수 중에서 PlayerPrefs를 이용하였습니다.
PlayerPrefs 함수는 간단하게 데이터를 저장하는 방법으로 캐릭터의 좌표, 점수, 체력 등을 이용하는데 편하게 사용이 가능 합니다.
각 함수 내용을 간단하게 설명하자면 PlayerPrefs는 Get 과 Set 그리고 뒤에 사용 가능한 변수로는 int, float, string 형이 있습니다.
ex) SetInt, SetFloat, SetString, GetInt, GetFloat, GetString 등등..
그리고 PlayerPrefs.HasKey 를 통해 지정한 키 값의 데이터가 존재 하는지도 파악이 가능합니다.
아래는 간단한 예제와 함께 풀이를 써보았습니다.
필자는 두 개의 Text UI 를 만들어 시각적으로 보이게 하였습니다.
Text UI를 만들고 부모의 오브젝트에 스크립트를 컴포넌트 합니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class BeforeScore : MonoBehaviour
{
public Text beforeScoreObj; //Text 변수 선언
public Text newScoreObj; //Text 변수 선언
int beforeScore; //int 변수 선언
int newScore; //int 변수 선언
// Start is called before the first frame update
void Start()
{
Debug.Log("++++++++++++++++++++");
//HasKey는 스트링형 키값을 통해 데이터가 참, 거짓 존재하는지 알려줌.
if (PlayerPrefs.HasKey("beforeScore"))
{
//int 값에 GetInt함수 사용하여 데이터 불러오기.
beforeScore = PlayerPrefs.GetInt("beforeScore"); //키값 beforeSocre의 PlayerPrefs를 int형 변수 저장
beforeScoreObj.text = beforeScore.ToString();
Debug.Log("beforeScore :: " + beforeScore);
}
//새로운 점수 판에 랜덤 값 주기
newScore = Random.Range(1, 10);
newScoreObj.text = newScore.ToString();
Debug.Log("newScore :: " + newScore);
PlayerPrefs.SetInt("beforeScore", newScore); //highScore라는 키값에 newScore 값 지정하기.
PlayerPrefs.Save(); //지정한 데이터 저장하기.
}
}
이후 프로젝트를 실행 하고 종료를 반복 하면 아래의 콘솔 창에 다음과 같은 로그 값을 확인 가능합니다. 처음 점수는 0으로 시작하여, 새로운 점수가 누적되면 다음 실행 시 이전의 누적된 점수가 beforeScore로, 새로운 점수가 newScore로 저장되는 것을 확인할 수 있습니다.
위와 같이 오늘은 PlayerPrefs의 사용 방법을 알아보았습니다. 위 스크립트를 조정하여 이전 점수와 새로운 점수를 비교한다면 높은 점수를 채택하는 방법도 있겠습니다. 감사합니다.
유니티 Resources.LoadAll 을 이용한 전체 파일 불러오기 (0) | 2020.08.16 |
---|---|
유니티 퍼미션권한 Permission 카메라 퍼미션 (1) | 2020.08.13 |
유니티 ZXing을 이용한 QRcdoe 인식 (0) | 2020.07.25 |
유니티 ZXing을 이용한 QRcode 생성 (0) | 2020.07.18 |
유니티 error: The type or namespace name 'post processing' could not be found (0) | 2020.07.10 |
댓글 영역