가장 기본적으로 저장하는 방법은 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;
댓글 없음:
댓글 쓰기