Unity3D 게임 개발 데이터 지구 화 PlayerPrefs 의 용법 상세 설명
5617 단어 Unity3D게임 개발데이터 영구 화PlayerPrefs
우선 유 니 티 3D 두 단락 에서 데이터 읽 기와 쓰 기 를 실현 하 는 간단 한 코드 를 살 펴 보 자.
//
PlayerPrefs.SetString("Name",mName);
PlayerPrefs.SetInt("Age",mAge);
PlayerPrefs.SetFloat("Grade",mGrade)
//
mName=PlayerPrefs.GetString("Name","DefaultValue");
mAge=PlayerPrefs.GetInt("Age",0);
mGrade=PlayerPrefs.GetFloat("Grade",0F);
위의 두 단락 의 코드 를 통 해 우 리 는 두 가 지 를 발견 할 수 있다.1.Unity3D 의 데이터 지속 화 는 키 값 으로 저장 되 며 사전 으로 볼 수 있 습 니 다.
2.Unity3D 중간 값 은 키 이름 을 통 해 읽 습 니 다.값 이 존재 하지 않 을 때 기본 값 을 되 돌려 줍 니 다.
현재 Unity3D 에 서 는 int,string,float 세 가지 데이터 형식 만 읽 을 수 있 기 때문에 우 리 는 이 세 가지 데이터 형식 으로 간단 한 데 이 터 를 저장 할 수 있 습 니 다.현재 Unity3D 에서 데이터 의 지속 화 에 사용 되 는 클래스 는 layer Prefs 입 니 다.주요 한 클래스 방법 은 다음 과 같 습 니 다.
static function DeleteAll(): void
: , 。
static function DeleteKey(key: string): void
: key 。
static function GetFloat(key: string, defaultValue: float=OF): float
: , key . , defaultValue。
static function GetInt(key: string, defaultValue: int): int
: key , . , defaultValue。
static function GetString(key: string, defaultValue: string=**): string
: key , . , defaultValue.
static function HasKey(key: string): bool
: key .
static function SetFloat(key: string, value: float): void
: key .
static function SetInt(key: string, value: int): void
: key .
static function SetString(key: string, value: string): void
: key .
자,layer Prefs 의 주요 방법 을 알 아 본 후에 우 리 는 구체 적 인 예 를 들 어 Unity 3D 에서 데이터 의 지속 적 인 실현 을 배 웠 습 니 다.우 리 는 한 장면 에서 정 보 를 입력 하여 새로운 장면 에서 정 보 를 읽 을 수 있 도록 하고 싶 습 니 다.우 리 는 두 장면 을 직접 만 들 었 는데 각각 Scene 0,Scene 1(프로그래머 의 수 는 모두 0 에서 시작 되 었 다 고 합 니 다.하하)이 라 고 명명 되 었 고 장면 에서 메 인 카 메 라 를 유지 하면 됩 니 다.다음 에 우 리 는 각각 두 장면 을 위해 스 크 립 트 를 작성 합 니 다.첫 번 째 장면 의 스 크 립 트:
using UnityEngine;
using System.Collections;
public class Scene1Script : MonoBehaviour {
//
private string mName=" ";
//
private int mAge=20;
//
private float mGrade=75.5F;
void OnGUI()
{
GUILayout.Label("Unity3D ",GUILayout.Height(25));
//
GUILayout.Label(" :",GUILayout.Height(25));
mName=GUILayout.TextField(mName,GUILayout.Height(25));
//
GUILayout.Label(" :",GUILayout.Height(25));
mAge=int.Parse(GUILayout.TextField(mAge.ToString(),GUILayout.Height(25)));
//
GUILayout.Label(" :",GUILayout.Height(25));
mGrade=float.Parse(GUILayout.TextField(mGrade.ToString(),GUILayout.Height(25)));
//
if(GUILayout.Button(" ",GUILayout.Height(25)))
{
//
PlayerPrefs.SetString("Name",mName);
PlayerPrefs.SetInt("Age",mAge);
PlayerPrefs.SetFloat("Grade",mGrade);
//
Application.LoadLevel("Scene1");
}
}
}
두 번 째 장면 의 스 크 립 트:
using UnityEngine;
using System.Collections;
public class Scene2Script : MonoBehaviour {
private string mName;
private int mAge;
private float mGrade;
void Start ()
{
//
mName=PlayerPrefs.GetString("Name","DefaultValue");
mAge=PlayerPrefs.GetInt("Age",0);
mGrade=PlayerPrefs.GetFloat("Grade",0F);
}
void OnGUI()
{
GUILayout.Label("Unity3D ",GUILayout.Height(25));
//
GUILayout.Label(" :"+mName,GUILayout.Height(25));
//
GUILayout.Label(" :"+mAge,GUILayout.Height(25));
//
GUILayout.Label(" :"+mGrade,GUILayout.Height(25));
//
if(GUILayout.Button(" ",GUILayout.Height(25)))
{
PlayerPrefs.DeleteAll();
}
// Scene0
if(GUILayout.Button(" ",GUILayout.Height(25)))
{
Application.LoadLevel("Scene0");
}
}
}
우 리 는 스 크 립 트 를 카메라 에 직접 연결 한 다음 에 프로젝트 를 컴 파일 합 니 다.두 장면 을 컴 파일 시퀀스 에 넣 는 것 을 주의 하 십시오.우 리 는 프로그램 을 실행 합 니 다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Unity 공부 일지~블렌드 셰이프 조작 방법 그 ①게임을 만들고 싶다 ~라고 생각하고 마지막 날부터 Unity를 만지기 시작했습니다 HITOMI2236입니다. 이번 블렌드 셰이프에 대해 조사했으므로 여기에 기록하려고 합니다. 개인용 메모입니다만, 만약 같은 곳에서 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.