유니티 장면 사이의 효율적인 데이터 전송 방법
단일 장면을 전환 할 때 데이터는 종종 장면간에 데이터를 전달해야합니다. 이를 달성하는 방법에는 여러 가지가 있으며 특정 방법은 전달할 데이터 유형에 따라 다릅니다.
정적 변수
데이터가 기본 데이터 유형 (int, bool, string 등) 인 경우 Monobehaviour에서 상속되지 않으며 GameBject가 아니므로이를 정적 변수로 표시 할 수 있습니다. 정적 변수는 장면을 전환 할 때 값을 유지합니다.
dontdestroyonload
monobehaviour 또는 gameobject에서 상속 된 물체는 dontdestroyonload 함수를 사용하여 유지 될 수 있습니다. 이것은 장면이 제거 될 때 GameObject가 파괴되는 것을 방지합니다. 이 기능을 포함하는 스크립트를 객체에 추가하면 다음 장면에서 변수가 액세스 할 수 있습니다.
playerprefs
PlayerPrefs는 Unity의 API이며 소량의 데이터가 키 값 쌍과 같은 소량의 데이터를 저장할 수 있습니다. 점수 또는 설정과 같은 기본 데이터를 저장하는 데 사용할 수 있습니다.
파일 IO 직렬화
많은 양의 데이터 또는 복잡한 개체의 경우 JSON 또는 BAINSER와 같은 직렬화 된 파일 형식을 사용할 수 있습니다. 게임 데이터를 나타 내기 위해 사용자 정의 클래스를 작성한 다음 C#파일 API (예 : File.WriteAllBytes 및 file.readallBytes)를 사용하여 파일에 직렬화 할 수 있습니다.
케이스 : 전송 점수
샘플 코드에서 PlayerPrefs.setInt 및 PlayerPrefs.getInt는 점수 값을 다음 장면으로 전달하는 데 사용됩니다. 그러나 점수가 저장된 후 장면의 전환이 없으므로로드 된 장면은 업데이트 된 값에 액세스 할 수 없습니다. 코드는 다음과 같이 수정해야합니다
장면 1 : <p>
</p>
장면 2 : <p>
<strong>
<ens>이 수정은 PlayerPrefs를 사용하여 현재 점수를 저장하고 새로운 시나리오는 저장된 점수를 사용하여 초기화 한 다음 PlayerPrefs를 재설정합니다. </ens></strong></p>
위 내용은 Unity의 장면간에 데이터를 효과적으로 전달하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!