WorldInstanceSharedMemory

WorldInstance끼리 공유하는 메모리입니다.

# Properties

[{"index":"string Name (ReadOnly)","0":"공유 메모리의 이름입니다."}]

# Methods

[{"index":"Dictionary, SharedVariableResult> BatchCreateVariableAndWait(Dictionary nameValues) (ServerOnly) (Yield)","0":"입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void BatchCreateVariableAsync(Dictionary nameValues, func> callbackFunction) (ServerOnly)","0":"입력한 이름, 값 쌍들로 변수들을 할당합니다. 작업이 완료되면 변수 이름과 결과 쌍을 담고 있는 table과 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

[{"index":"Dictionary, SharedMemoryResultCode> BatchDeleteVariableAndWait(List names) (ServerOnly) (Yield)","0":"입력한 이름들에 해당하는 변수들을 삭제합니다. 해당 변수를 사용 중인 곳이 있더라도 삭제됩니다. 변수 이름과 결과 코드 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void BatchDeleteVariableAsync(List names, func> callbackFunction) (ServerOnly)","0":"입력한 이름들에 해당하는 변수들을 삭제합니다. 해당 변수를 사용 중인 곳이 있더라도 삭제됩니다. 작업이 완료되면 변수 이름과 결과 코드 쌍을 담고 있는 table과 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

[{"index":"Dictionary, SharedVariableResult> BatchGetVariableAndWait(List names) (ServerOnly) (Yield)","0":"입력한 이름들에 해당하는 변수들의 정보를 얻어옵니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void BatchGetVariableAsync(List names, func> callbackFunction) (ServerOnly)","0":"입력한 이름들에 해당하는 변수들의 정보를 얻어옵니다. 작업이 완료되면 변수 이름과 결과 쌍을 담고 있는 table과 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

[{"index":"Dictionary, SharedMemoryResultCode> BatchReleaseVariableAndWait(List names) (ServerOnly) (Yield)","0":"입력한 이름들에 해당하는 변수들의 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 변수 이름과 결과 코드 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void BatchReleaseVariableAsync(List names, func> callbackFunction) (ServerOnly)","0":"입력한 이름들에 해당하는 변수들의 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 작업이 완료되면 변수 이름과 결과 코드 쌍을 담고 있는 table과 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

[{"index":"Dictionary, SharedVariableResult> BatchSetVariableAndWait(Dictionary nameValues) (ServerOnly) (Yield)","0":"입력한 이름, 값 쌍들로 변수가 없으면 새 변수들을 할당합니다. 이미 있으면 기존 변수들의 값을 수정합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void BatchSetVariableAsync(Dictionary nameValues, func> callbackFunction) (ServerOnly)","0":"입력한 이름, 값 쌍들로 변수가 없으면 새 변수들을 할당합니다. 이미 있으면 기존 변수들의 값을 수정합니다. 작업이 완료되면 변수 이름과 결과 쌍을 담고 있는 table과 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

[{"index":"Dictionary, SharedVariableResult> BatchUpdateVariableAndWait(Dictionary keyValues) (ServerOnly) (Yield)","0":"입력한 SharedVariableKeyInfo들에 해당하는 변수들의 값을 수정합니다. SharedVariableKeyInfo의 ETag가 최신이 아니면 값을 수정하지 않습니다. ETag가 nil 또는 빈 문자열이면 무조건 값을 수정합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void BatchUpdateVariableAsync(Dictionary keyValues, func> callbackFunction) (ServerOnly)","0":"입력한 SharedVariableKeyInfo들에 해당하는 변수들의 값을 수정합니다. SharedVariableKeyInfo의 ETag가 최신이 아니면 값을 수정하지 않습니다. ETag가 nil 또는 빈 문자열이면 무조건 값을 수정합니다. 작업이 완료되면 변수 이름과 결과 쌍을 담고 있는 table과 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

[{"index":"SharedVariableResult CreateVariableAndWait(string name, string value) (ServerOnly) (Yield)","0":"변수를 할당합니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void CreateVariableAsync(string name, string value, func callbackFunction) (ServerOnly)","0":"변수를 할당합니다. 작업이 완료되면 결과와 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

[{"index":"SharedMemoryResultCode DeleteVariableAndWait(string name) (ServerOnly) (Yield)","0":"변수를 삭제합니다. 해당 변수를 사용 중인 곳이 있더라도 삭제됩니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void DeleteVariableAsync(string name, func callbackFunction) (ServerOnly)","0":"변수를 삭제합니다. 해당 변수를 사용 중인 곳이 있더라도 삭제됩니다. 작업이 완료되면 결과 코드와 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

[{"index":"SharedVariableResult GetVariableAndWait(string name) (ServerOnly) (Yield)","0":"변수 정보를 얻어옵니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void GetVariableAsync(string name, func callbackFunction) (ServerOnly)","0":"변수 정보를 얻어옵니다. 작업이 완료되면 결과 코드, 변수 정보와 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

[{"index":"SharedMemoryResultCode ReleaseVariableAndWait(string name) (ServerOnly) (Yield)","0":"변수 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void ReleaseVariableAsync(string name, func callbackFunction) (ServerOnly)","0":"변수 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 작업이 완료되면 결과 코드와 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

[{"index":"SharedVariableResult SetVariableAndWait(string name, string value) (ServerOnly) (Yield)","0":"변수가 없으면 새 변수를 할당합니다. 이미 있으면 기존 변수의 값을 수정합니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void SetVariableAsync(string name, string value, func callbackFunction) (ServerOnly)","0":"변수가 없으면 새 변수를 할당합니다. 이미 있으면 기존 변수의 값을 수정합니다. 작업이 완료되면 결과와 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

[{"index":"SharedVariableResult UpdateVariableAndWait(SharedVariableKeyInfo keyInfo, string value) (ServerOnly) (Yield)","0":"변수 값을 수정합니다. keyInfo의 ETag가 최신이 아니면 값을 수정하지 않습니다. ETag가 nil 또는 빈 문자열이면 무조건 값을 수정합니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void UpdateVariableAsync(SharedVariableKeyInfo keyInfo, string value, func callbackFunction) (ServerOnly)","0":"변수 값을 수정합니다. keyInfo의 ETag가 최신이 아니면 값을 수정하지 않습니다. ETag가 nil 또는 빈 문자열이면 무조건 값을 수정합니다. 작업이 완료되면 결과 코드, 최신 변수 정보와 함께 callbackFunction으로 전달된 함수가 호출됩니다."}]

# 제한 사항

WorldInstanceService를 사용할 때는 아래의 제한 사항을 염두에 두고 사용해야 합니다.

#### 작명 규칙

WorldInstanceMemory와 공유 변수 이름은 아래 문자로만 작명할 수 있습니다. 최소 1글자 이상의 이름이어야 하며, 최대 100글자 이름일 수 있습니다.

  * 알파벳 대,소문자
  * 숫자
  * 공백
  * _, \, -



#### 수량 및 용량 제한

  * 한 월드 당 생성 가능한 WorldInstanceSharedMemory는 최대 100개입니다.
  * 하나의 공유 변수에 저장할 수 있는 최댓값은 80,000 bytes입니다.
  * 공유 메모리 하나의 총 용량은 80MiB를 넘을 수 없습니다.
  * 전송할 이벤트 프로퍼티의 총 용량은 80,000 byte를 넘을 수 없습니다.



#### 사용량 제한

  * 월드의 생성된 모든 월드 인스턴스에서 분당 최대 WorldInstanceSharedMemory 함수 호출 횟수는 1,000회입니다. 
    * Batch 함수 호출 한 번으로 100개의 공유 변수의 값을 변경한다면 함수 호출 횟수는 100회입니다.
    * 10개의 월드 인스턴스에서 동시에 100번 호출하면 호출 횟수는 1,000회입니다.
  * 월드 인스턴스 간 최대 이벤트 전송 횟수는 분당 1,000회입니다.