Storage

App storage는 스페이스 내의 App 데이터의 저장공간 입니다.

App storage에 데이터 저장하기

권장하는 데이터 저장 방식

App.setStorage(string);

App.setStorage 함수는 기존 App storage 데이터 저장 방식을 보완한 데이터 저장 함수입니다.

권장하지 않는 데이터 저장 방식

App.storage = string; App.save();

위 방식은 앱이 같은 스페이스 내 여러 맵에서 실행중인 경우, 데이터를 덮어쓰는 등의 문제가 발생할 수 있어 사용을 권장드리지 않습니다.

App storage 값 읽어오기

App.getStorage(function(){})

App.getStorage 함수는 앱이 실행중인 같은 스페이스 내 다른 맵의 App storage 데이터 변경 여부를 체크하여 같은 데이터를 가지도록 동기화 해주는 함수입니다.

App.getStorage 함수는 비동기 함수이기 때문에 App.getStorage 함수 다음 라인에 App.storage를 사용하는 코드를 작성할 경우 동기화를 보장할 수 없습니다.

App storage 사용 예제

아래 예제코드를 사이드바 앱으로 설치해 같은 스페이스 내 다른 맵에서 Q를 눌러 count 값이 동기화되는지 확인해보세요.


App.onStart.Add(function(){
	if(App.storage == null){
		App.setStorage(JSON.stringify({count: 0}))
	}
})
// Q 키를 누르면 동작하는 함수
App.addOnKeyDown(81,function(player){
	// App.storage를 최신화 한 후 callback 함수를 실행합니다.
	App.getStorage(function () {
		let appStorage = JSON.parse(App.storage);
		appStorage.count += 1;
		App.sayToAll(`count: ${appStorage.count}`)
		// App.setStorage를 사용해 변경내용을 저장합니다.
		App.setStorage(JSON.stringify(appStorage));
	});
	// App.getStorage 함수 다음 라인에 App.storage 코드를 작성할 경우 동기화를 보장할 수 없습니다.
	App.sayToAll(App.storage);
})

Last updated