SaveSystem - stingray.SaveSystem 네임스페이스 참조 - Stingray Lua API 참조

stingray.SaveSystem 네임스페이스 참조

설명

저장 및 로드 기능에 액세스하는 인터페이스입니다.

이 오브젝트는 싱글톤(SaveSystem이 하나뿐임)이기 때문에 어떠한 SaveSystem 오브젝트도 함수로 전달할 필요가 없습니다. 모든 함수는 SaveSystem 싱글톤에서 작동합니다.

다음 데이터 유형을 저장할 수 있습니다.

비동기 작업은 작업 중 진행률을 가져오는 데 사용되는 SaveToken 오브젝트를 반환합니다. 저장 중 사용되는 메모리의 점유를 풀어주려면 이 오브젝트를 닫아야 합니다. 그렇지 않으면 결국 게임을 실행하는 데 필요한 메모리가 부족해집니다.

Windows 및 iOS에서는 저장 시스템이 파일을 읽고 쓸 수 있는 루트 디렉토리를 설정해야 합니다. 프로젝트의 settings.ini 파일의 플랫폼별 save_dir 설정에서 이 작업을 수행합니다. 예를 들면 다음과 같습니다.

win32 = {
    // ... other windows settings go here
    save_dir = "%APPDATA%\\MyCompany\\MyProjectName\\Saves"
}
iOS = {
    // ... other iOS settings go here
    save_dir = "%SAVEDATA%/MyProjectName"
}

자세한 내용은 Stingray 엔진 settings.ini 파일 참조를 참조하십시오.

오류 코드

save_error_result()load_error_result() 함수를 통해 반환될 수 있는 오류 코드입니다.

BROKEN : integer

연결이 끊어져 로딩이 실패했습니다.

NOT_FOUND : integer

데이터를 찾을 수 없어 로딩이 실패했습니다.

OTHER : integer

정의되지 않은 다른 이유 때문에 저장 또는 로드가 실패했습니다.

상태 코드

status() 함수가 반환할 수 있는 상태 코드입니다.

COMPLETED : integer

작업이 성공적으로 완료되었습니다.

STARTED : integer

작업이 시작되었고, 아직 완료되지 않았습니다.

UNKNOWN : integer

지정된 ID가 생성되지 않았거나 이미 점유가 풀린 상태입니다.

PlayStation 4

여기에서 설명하는 인터페이스는 PlayStation 4에만 해당합니다.

매개변수

id :

integer

리소스의 점유를 풀어줄 작업의 ID입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

작업이 성공적으로 완료되었는지 여부에 관계없이 stingray.SaveSystem.save()stingray.SaveSystem.load()를 통해 가져온 모든 ID에 대해 free()를 호출해야 합니다. 그렇지 않으면 결국 저장 시스템을 실행하는 데 필요한 메모리가 부족해집니다.

매개변수

info :

save_system_ps4_info

게임 및 로드할 데이터에 관한 세부 정보를 제공하는 테이블입니다. 필드는 stingray.SaveSystem.save()에 대한 테이블과 동일하며, 단 title, subtitledetails가 사용되지 않고, 필요한 파일 데이터가 없다는 점만 다릅니다.

반환하는 항목

integer

status()로 전달할 수 있는 작업 ID입니다.

stingray.SaveSystem.status()를 사용하여 작업 진행 상황을 추적할 수 있습니다. 작업이 완료되면 stingray.SaveSystem.free()를 호출하여 작업에 사용된 메모리의 점유를 풀어주어야 합니다.

사용 샘플:

id = SaveSystem.load
{
    user_id = user,
    name = "save2",
    files = {
                {path = "a"},
                {path = "b"},
                {path = "c/d"},
    },
}
매개변수

id :

integer

쿼리할 작업의 ID입니다.

반환하는 항목

integer

로드 중 발생하는 마지막 오류를 나타내는 오류 상수입니다.

매개변수

id :

integer

쿼리할 작업의 ID입니다.

반환하는 항목

save_system_ps4_info_files[]

로드된 파일과 이 파일에서 로드된 데이터의 목록입니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.

결과의 형식은 stingray.SaveSystem.save()에 제공된 형식(경로와 값이 포함된 테이블)과 같습니다. 예를 들면 다음과 같습니다.

{
    {path = "a", data = 3},
    {path = "b", data = "Niklas"},
    {path = "c/d", data = {1,2,3, {ha = "ho"}}},
}
매개변수

info :

save_system_ps4_info

게임 및 저장할 데이터에 관한 세부 정보를 제공하는 테이블입니다.

반환하는 항목

integer

status()로 전달할 수 있는 작업 ID입니다.

stingray.SaveSystem.status()를 사용하여 작업 진행 상황을 추적할 수 있습니다. 작업이 완료되면 stingray.SaveSystem.free()를 호출하여 작업에 사용된 메모리의 점유를 풀어주어야 합니다.

사용 샘플:

id = SaveSystem.save
{
    user_id = user
    name = "save2",
    title = "A saved game",
    subtitle = "This is the game saved",
    icon = "images/icon0"
    details = "It was a wonderful game",
    files = {
        {path = "a", data = 3},
        {path = "b", data = "Niklas"},
        {path = "c/d", data = {1,2,3, {ha = "ho"}}},
    },
}
매개변수

id :

integer

쿼리할 작업의 ID입니다.

반환하는 항목

integer

저장 중 발생하는 마지막 오류를 나타내는 오류 상수입니다.

integer?

오류 유형이 SaveSystem.OUT_OF_SPACE인 경우에는 사용자가 리소스 점유를 풀어주어야 하는 필수 데이터 양이 됩니다(stingray.SaveSystemDialog.open() 호출 시 사용). 그렇지 않으면, 이 값이 nil이 됩니다.

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
매개변수

id :

integer

쿼리할 작업의 ID입니다.

반환하는 항목

integer

작업의 상태를 나타내는 상태 상수입니다.

이 함수가 SaveSystem.ERROR를 반환하는 경우 save_error_result() 또는 load_error_result()를 호출하여 오류에 관한 보다 자세한 정보를 확인할 수 있습니다.

Windows, iOS 및 Android

여기에서 설명하는 인터페이스는 Windows, Mac OS X, iOS 및 Android 플랫폼에 해당합니다.

매개변수

filename :

string

로드하려는 데이터를 포함하고 있는 파일의 이름입니다. 디렉토리를 지정할 필요는 없습니다. a-z, 0-9_ 문자만 파일 이름으로 사용할 수 있습니다.

반환하는 항목

stingray.SaveToken

progress() 호출을 통해 쿼리할 수 있는 토큰입니다.

파일을 자동으로 읽습니다.

작업에 의해 할당된 메모리의 점유를 풀어주려면 반환된 토큰에 대해 stingray.SaveSystem.close()를 호출해야 합니다.

매개변수

filename :

string

저장된 데이터가 포함될 파일의 이름입니다. 디렉토리를 지정할 필요는 없습니다. a-z, 0-9_ 문자만 파일 이름으로 사용할 수 있습니다. 파일이 존재하는 경우 자동으로 덮어써집니다.

data :

table

대개 저장해야 하는 데이터를 포함하고 있는 테이블입니다.

반환하는 항목

stingray.SaveToken

progress() 호출을 통해 쿼리할 수 있는 토큰입니다.

작업에 의해 할당된 메모리의 점유를 풀어주려면 반환된 토큰에 대해 stingray.SaveSystem.close()를 호출해야 합니다.

매개변수

token :

stingray.SaveToken

닫으려는 SaveToken입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

작업에 사용된 메모리의 점유를 풀어줍니다.

매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목

boolean

SaveSystem 인터페이스를 사용할 수 있으면 true를, 그렇지 않으면 false를 반환합니다.

매개변수

token :

stingray.SaveToken

쿼리하려는 작업을 식별하는 토큰입니다.

반환하는 항목

save_system_progress

저장 또는 로드 작업의 진행 상황과 로드된 데이터(있는 경우)에 관한 정보를 포함하고 있는 테이블입니다.