가장 기본적으로 저장하는 방법은 PlayerPrefs을 사용해서 저장하는 방법이 있습니다.
이것은 기본 데이터를 문자열키를 이용해서 같이 저장하게 해주는것인데요, 저장할 데이터가 작고 간단하다면 이 방법을 사용하는것이 가장 무난하고 좋습니다.
사용법은 아래의 코드를 살펴보세요.
using UnityEngine; using System.Collections; public class csTest : MonoBehaviour { int currentScore; int highScore; string currentPlayerName; string highScorePlayerName; void SaveData() { // 이런식으로 스트링키를 이용해서 값을 저장해줍니다. PlayerPrefs.SetInt("Score", currentScore); PlayerPrefs.SetInt("HighScore", currentScore); PlayerPrefs.SetString("HighScoreName", currentPlayerName); } void GetData() { // 필요한 데이터를 불러올때는 이렇게 키값으로 불러오게 되죠. highScore = PlayerPrefs.GetInt("HighScore"); highScorePlayerName = PlayerPrefs.GetString("HighScoreName", "N/A"); } }이렇게 구성후 정적클래스를 만들어서 관리하거나 싱글턴 클래스를 만들어서 관리할 수 있습니다.
그런데 정적클래스로 만들면 인스펙터에서는 값을 조절할 수 없다는 단점이 있죠.
인스펙터와 코드 모두에서 값을 조절하고 싶은 경우엔 아래의 예제 코드처럼 DontDestroyOnLoad 함수를 이용해서 가능하게 만들 수 있습니다.
using UnityEngine; using System.Collections; public class csTest : MonoBehaviour { public static csTest current; public Transform somePrefabs; public int score; public string playerName; void Awake() { if (current != null && current != this) { Destroy(gameObject); } else { DontDestroyOnLoad(gameObject); current = this; } } }
// 접근할때는 요렇게 접근합니다. Transform x = csTest.current.somePrefabs;
댓글 없음:
댓글 쓰기