msw-ai-tf/maplestory-worlds-creator-docs huggingface dataset:
SharedMemoryResultCode

공유 메모리 관련 요청 처리 결과를 나타내는 코드입니다.

# Members

[{"이름":"OK","값":"0","설명":"요청 처리에 성공했습니다."},{"이름":"Cancelled","값":"1000000","설명":"요청이 취소되었습니다."},{"이름":"InternalError","값":"1000001","설명":"내부 시스템 오류가 발생했습니다."},{"이름":"NotFound","값":"1000002","설명":"요청한 값이 서버에 존재하지 않습니다."},{"이름":"BadRequest","값":"1000003","설명":"잘못된 요청입니다."},{"이름":"TimedOut","값":"1000004","설명":"요청 처리 시간이 오래 걸려 실패했습니다."},{"이름":"ResourceExhausted","값":"1000005","설명":"요청량이 많아 실패했습니다."},{"이름":"AlreadyExists","값":"1000007","설명":"요청한 내용이 이미 존재합니다."},{"이름":"PreconditionFailed","값":"1000008","설명":"스크립트에서 요청한 정보와 서버의 정보가 불일치합니다."},{"이름":"Unknown","값":"2147483647","설명":"알 수 없는 오류가 발생했습니다."}]

# Methods

[{"index":"SharedMemoryResultCode CastFrom(number value) (Static)","0":"숫자를 해당 타입으로 변환합니다."}]

[{"index":"SharedMemoryResultCode CastFrom(string value) (Static)","0":"문자열을 해당 타입으로 변환합니다."}]
utf8

# Properties

[{"index":"string charpattern (Static)","0":"패턴 \"[\\\0-\\\x7F\\\xC2-\\\xF4][\\\x80-0xBF]*\"입니다. 유효한 UTF-8 문자열이라면 정확히 한 개의 UTF-8 바이트 열에 일치합니다."}]

# Functions

[{"index":"integer... codepoint(string s, integer i = 1, integer j = i) (Static)","0":"바이트 위치 i와 j 사이에서 시작하는 모든 문자에서 코드 포인트를 반환합니다."}]

[{"index":"func, string, integer codes(string s) (Static)","0":"문자열 s의 모든 문자에 대해 반복할 수 있도록 값을 반환합니다. 바이트 위치와 코드 포인트를 반환하며 유효하지 않은 바이트 열을 만나면 오류를 던집니다."}]

[{"index":"integer offset(string s, integer n, integer i = 1) (Static)","0":"s에서 n 번째 문자의 인코딩이 시작되는 위치를 반환합니다."}]

[{"index":"string char(integer... args) (Static)","0":"0개 이상의 정수를 받아 각각을 대응하는 UTF-8 바이트열로 변환합니다. 그 열들을 모두 이어 붙인 문자열을 반환합니다."}]

[{"index":"any... len(string s, integer i = 1, integer j = -1) (Static)","0":"s에서 위치 i와 j 사이에서 시작하는 UTF-8 문자들의 수를 반환합니다. 유효하지 않은 바이트 열을 발견하면 false 값과 유효하지 않은 바이트의 첫 번째 위치를 반환합니다."}]
LitMode

머티리얼 또는 오브젝트가 광원의 영향을 받을지 여부를 결정하는 렌더링 방식을 선택합니다.

# Members

[{"이름":"Default","값":"0","설명":"WorldConfig에 지정된 렌더링 방식을 그대로 따릅니다. 개별적으로 설정을 변경하지 않고, 여러 오브젝트의 Lit\/Unlit 상태를 한 번에 제어하고 싶을 때 유용합니다."},{"이름":"Unlit","값":"1","설명":"광원의 영향을 받지 않습니다. 이 모드는 광원의 색상, 강도, 위치와 관계없이 항상 머티리얼의 원본 색상과 텍스처 그대로, 최대 밝기로 렌더링됩니다. UI나 특별히 강조되어야 하는 일부 배경 요소에 적합합니다."},{"이름":"Lit","값":"2","설명":"광원의 영향을 받습니다. 이 모드는 배치된 광원의 영향을 직접 받습니다. 광원에 따라 오브젝트의 색상과 밝기가 동적으로 변합니다."}]

# Methods

[{"index":"LitMode CastFrom(number value) (Static)","0":"숫자를 해당 타입으로 변환합니다."}]

[{"index":"LitMode CastFrom(string value) (Static)","0":"문자열을 해당 타입으로 변환합니다."}]
ParallelNode

모든 자식 노드를 동시에 실행합니다.

# Properties

##### inherited from BTNode:

[{"index":"boolean ExclusiveExecutionWhenRunning (Deprecated)","0":"더는 사용하지 않는 프로퍼티입니다."}]

[{"index":"func InitFunction","0":"초기화 시점에 호출되는 함수입니다."}]

[{"index":"string Name","0":"이 노드의 이름입니다."}]

[{"index":"AIComponent ParentAI (ReadOnly) (HideFromInspector)","0":"이 노드를 가진 AIComponent입니다."}]

# Constructors

[{"index":"ParallelNode(string name = \"ParallelNode\")","0":"지정한 이름으로 ParallerNode를 초기화합니다."}]

# Methods

##### inherited from CompositeNode:

[{"index":"void AttachChild(BTNode node)","0":"node를 자식 노드로 추가합니다."}]

[{"index":"void AttachChildAt(BTNode node, int32 index)","0":"index 위치에 node를 자식 노드로 추가합니다. index는 1부터 시작합니다."}]

[{"index":"boolean DetachChild(BTNode node)","0":"node를 자식 노드에서 제거합니다."}]

[{"index":"boolean DetachChild(string nodeName)","0":"이름이 nodeName인 노드를 찾아 자식 노드에서 제거합니다."}]

[{"index":"void DetachChildAt(int32 index)","0":"index 위치에 있는 노드를 자식 노드에서 제거합니다. index는 1부터 시작합니다."}]

##### inherited from BTNode:

[{"index":"BehaviourTreeStatus Behave(float deltaTime)","0":"노드를 실행합니다. deltaTime은 이전 프레임과 현재 프레임 사이에 흐른 시간입니다. 단위는 초입니다."}]
RegexOption

정규 표현식에 필요한 옵션을 지정할 수 있습니다.

# Members

[{"이름":"nan","값":"0","설명":"옵션을 설정하지 않습니다."},{"이름":"IgnoreCase","값":"1","설명":"대소문자를 구분하지 않고 일치 항목을 찾도록 지정합니다."},{"이름":"Multiline","값":"2","설명":"여러 줄 모드입니다. 여러 줄로 구성된 문자열을 처리할 수 있도록 지정합니다."},{"이름":"ExplicitCapture","값":"4","설명":"(?...) 형식을 명시적으로 명명하거나 번호가 매겨진 그룹만 유효한 캡처되도록 지정합니다.<\/name>"},{"이름":"Singleline","값":"16","설명":"한 줄 모드로 지정해 입력된 문자열이 한 줄로 구성된 것처럼 처리합니다."},{"이름":"IgnorePatternWhitespace","값":"32","설명":"이스케이프되지 않은 공백을 패턴에서 무시합니다."},{"이름":"RightToLeft","값":"64","설명":"오른쪽에서 왼쪽으로 검색이 진행되도록 지정합니다."}]

# Methods

[{"index":"RegexOption CastFrom(number value) (Static)","0":"숫자를 해당 타입으로 변환합니다."}]

[{"index":"RegexOption CastFrom(string value) (Static)","0":"문자열을 해당 타입으로 변환합니다."}]

# SeeAlso

  * [정규식](/docs?postId=1041)
  * [정규식 언어](/docs?postId=1043)
TextHorizontalAlignmentOption

가로 방향 텍스트를 정렬하는 방식입니다.

# Members

[{"이름":"Left","값":"1","설명":"텍스트를 왼쪽 정렬합니다."},{"이름":"Center","값":"2","설명":"텍스트를 중앙 정렬합니다."},{"이름":"Right","값":"4","설명":"텍스트를 오른쪽 정렬합니다."},{"이름":"Justified","값":"8","설명":"텍스트를 영역의 양쪽 가장자리에 맞춰 정렬합니다. 단어 사이의 간격을 조절해 모든 줄의 너비를 일정하게 맞춥니다. 마지막 줄은 너비를 맞추지 않습니다."},{"이름":"Flush","값":"16","설명":"텍스트를 영역의 양쪽 가장자리에 맞춰 정렬합니다. 단어 사이의 간격을 조절해 모든 줄의 너비를 일정하게 맞춥니다. 마지막 줄은 글자 사이의 간격을 조절해 행의 너비를 맞춥니다."},{"이름":"Geometry","값":"32","설명":"텍스트를 중앙 정렬합니다. 각 줄의 중심이 영역의 중앙에 오도록 정렬합니다."}]

# Methods

[{"index":"TextHorizontalAlignmentOption CastFrom(number value) (Static)","0":"숫자를 해당 타입으로 변환합니다."}]

[{"index":"TextHorizontalAlignmentOption CastFrom(string value) (Static)","0":"문자열을 해당 타입으로 변환합니다."}]
OrderInLayerChangedEvent

Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * AreaParticleComponent (Space;Server,Client)
  * AvatarRendererComponent (Space;Server,Client)
  * BasicParticleComponent (Space;Server,Client)
  * ButtonComponent (Space;Server,Client)
  * ClimbableSpriteRendererComponent (Space;Server,Client)
  * LineRendererComponent (Space;Server,Client)
  * PixelGUIRendererComponent (Space;Server,Client)
  * PixelRendererComponent (Space;Server,Client)
  * PolygonRendererComponent (Space;Server,Client)
  * RawImageRendererComponent (Space;Server,Client)
  * RectTileMapComponent (Space;Server,Client)
  * ScrollLayoutGroupComponent (Space;Server,Client)
  * SkeletonRendererComponent (Space;Server,Client)
  * SliderComponent (Space;Server,Client)
  * SpriteGUIRendererComponent (Space;Server,Client)
  * SpriteParticleComponent (Space;Server,Client)
  * SpriteRendererComponent (Space;Server,Client)
  * TextComponent (Space;Server,Client)
  * TextGUIRendererComponent (Space;Server,Client)
  * TextGUIRendererInputComponent (Space;Server,Client)
  * TextInputComponent (Space;Server,Client)
  * TextRendererComponent (Space;Server,Client)
  * TileMapComponent (Space;Server,Client)
  * WebSpriteComponent (Space;Server,Client)
  * WebViewComponent (Space;Server,Client)
  * YoutubePlayerGUIComponent (Space;Server,Client)
  * YoutubePlayerWorldComponent (Space;Server,Client)



# Properties

[{"index":"int32 OrderInLayer","0":"변경된 OrderInLayer입니다."}]

# Constructors

[{"index":"OrderInLayerChangedEvent(int32 orderInLayer = 0)","0":"지정한 값으로 OrderInLayerChangedEvent를 초기화합니다."}]
SelectorNode

자식 노드가 Success를 반환할 때까지 순서대로 실행합니다.

# Properties

##### inherited from BTNode:

[{"index":"boolean ExclusiveExecutionWhenRunning (Deprecated)","0":"더는 사용하지 않는 프로퍼티입니다."}]

[{"index":"func InitFunction","0":"초기화 시점에 호출되는 함수입니다."}]

[{"index":"string Name","0":"이 노드의 이름입니다."}]

[{"index":"AIComponent ParentAI (ReadOnly) (HideFromInspector)","0":"이 노드를 가진 AIComponent입니다."}]

# Constructors

[{"index":"SelectorNode(string name = \"SelectorNode\")","0":"지정한 이름으로 SelectNode를 초기화합니다."}]

# Methods

##### inherited from CompositeNode:

[{"index":"void AttachChild(BTNode node)","0":"node를 자식 노드로 추가합니다."}]

[{"index":"void AttachChildAt(BTNode node, int32 index)","0":"index 위치에 node를 자식 노드로 추가합니다. index는 1부터 시작합니다."}]

[{"index":"boolean DetachChild(BTNode node)","0":"node를 자식 노드에서 제거합니다."}]

[{"index":"boolean DetachChild(string nodeName)","0":"이름이 nodeName인 노드를 찾아 자식 노드에서 제거합니다."}]

[{"index":"void DetachChildAt(int32 index)","0":"index 위치에 있는 노드를 자식 노드에서 제거합니다. index는 1부터 시작합니다."}]

##### inherited from BTNode:

[{"index":"BehaviourTreeStatus Behave(float deltaTime)","0":"노드를 실행합니다. deltaTime은 이전 프레임과 현재 프레임 사이에 흐른 시간입니다. 단위는 초입니다."}]
SequenceNode

자식 노드가 Failure를 반환할 때까지 순서대로 실행합니다.

# Properties

##### inherited from BTNode:

[{"index":"boolean ExclusiveExecutionWhenRunning (Deprecated)","0":"더는 사용하지 않는 프로퍼티입니다."}]

[{"index":"func InitFunction","0":"초기화 시점에 호출되는 함수입니다."}]

[{"index":"string Name","0":"이 노드의 이름입니다."}]

[{"index":"AIComponent ParentAI (ReadOnly) (HideFromInspector)","0":"이 노드를 가진 AIComponent입니다."}]

# Constructors

[{"index":"SequenceNode(string name = \"SequenceNode\")","0":"지정한 이름으로 SequenceNode를 초기화합니다."}]

# Methods

##### inherited from CompositeNode:

[{"index":"void AttachChild(BTNode node)","0":"node를 자식 노드로 추가합니다."}]

[{"index":"void AttachChildAt(BTNode node, int32 index)","0":"index 위치에 node를 자식 노드로 추가합니다. index는 1부터 시작합니다."}]

[{"index":"boolean DetachChild(BTNode node)","0":"node를 자식 노드에서 제거합니다."}]

[{"index":"boolean DetachChild(string nodeName)","0":"이름이 nodeName인 노드를 찾아 자식 노드에서 제거합니다."}]

[{"index":"void DetachChildAt(int32 index)","0":"index 위치에 있는 노드를 자식 노드에서 제거합니다. index는 1부터 시작합니다."}]

##### inherited from BTNode:

[{"index":"BehaviourTreeStatus Behave(float deltaTime)","0":"노드를 실행합니다. deltaTime은 이전 프레임과 현재 프레임 사이에 흐른 시간입니다. 단위는 초입니다."}]
SyncList<V>

동적 크기를 가지는 배열입니다. 1부터 시작하는 인덱스로 요소에 접근할 수 있으며 데이터 추가, 제거, 검색 기능을 제공합니다. 배열에 추가할 수 있는 데이터 타입을 V로 표현합니다.

# Properties

[{"index":"number Count (ReadOnly)","0":"List에 포함된 요소의 개수를 가져옵니다."}]

# Methods

[{"index":"boolean Contains(V item)","0":"List에 포함된 요소 수를 가져옵니다."}]

[{"index":"number IndexOf(V item)","0":"List에서 처음 나오는 요소의 인덱스를 반환합니다."}]

[{"index":"table ToTable()","0":"List에 포함된 요소를 가진 table을 생성합니다."}]

[{"index":"void Add(V item)","0":"요소를 List의 끝부분에 추가합니다."}]

[{"index":"void AddRange(table items)","0":"table의 요소를 List의 끝에 추가합니다."}]

[{"index":"void Clear()","0":"List에서 요소를 모두 제거합니다."}]

[{"index":"void Insert(number index, V item)","0":"List의 지정된 인덱스에 요소를 삽입합니다."}]

[{"index":"number LastIndexOf(V item)","0":"List에서 마지막으로 나오는 요소의 인덱스를 반환합니다."}]

[{"index":"boolean Remove(V item)","0":"List에서 맨 처음 발견되는 특정 요소를 제거합니다."}]

[{"index":"void RemoveAt(number index)","0":"List의 지정된 인덱스에 있는 요소를 제거합니다."}]

[{"index":"void RemoveRange(number index, number count)","0":"List에서 지정된 범위만큼 요소를 제거합니다."}]
ActionStateChangedEvent

액션 상태가 변경될 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * AvatarBodyActionSelectorComponent (Space;Client)



# Properties

[{"index":"string CoreActionName","0":"아바타의 맨몸 액션입니다."}]

[{"index":"int32 EndFrameIndex","0":"재생되는 애니메이션의 끝 프레임을 지정합니다. 애니메이션의 총 프레임 개수를 넘을 수 없습니다."}]

[{"index":"string PartsActionName","0":"아바타 장착 아이템의 액션입니다. 얼굴 장식은 포함되지 않습니다."}]

[{"index":"float PlayRate","0":"애니메이션 재생 속도입니다."}]

[{"index":"SpriteAnimClipPlayType PlayType","0":"재생 방식입니다. Onetime은 순서대로 한번만 재생, Loop는 순서대로 반복 재생, ZigzagLoop는 순차 재생과 역순 재생을 반복합니다. 이때 겹치는 순서는 연달아 재생하지 않습니다."}]

[{"index":"int32 StartFrameIndex","0":"재생되는 애니메이션의 시작 프레임을 지정합니다. 시작 프레임은 EndFramdIndex 값을 넘을 수 없습니다."}]

# Constructors

[{"index":"ActionStateChangedEvent(string coreActionName = \"\", string partsActionName = \"\", float playRate = 1, SpriteAnimClipPlayType playType = SpriteAnimClipPlayType.Loop, int32 startFrameIndex = 0, int32 endFrameIndex = 2147483647)","0":"지정한 값으로 ActionStateChangedEvent를 초기화합니다."}]
MapLayerComponent

맵의 레이어별 정보를 관리합니다.

# Properties

[{"index":"boolean IsVisible (ReadOnly) (HideFromInspector)","0":"레이어의 렌더링 여부를 나타냅니다. false일 경우 메이커 씬에서 보이지 않습니다."}]

[{"index":"int32 LayerSortOrder (ReadOnly)","0":"레이어의 우선순위 순서입니다. 값이 작을수록 하위 레이어로, 뒤에 그려집니다."}]

[{"index":"boolean Locked (ReadOnly) (HideFromInspector)","0":"레이어가 잠겨 있는지를 나타냅니다. 잠겨 있으면 메이커에서 편집을 막습니다."}]

[{"index":"string MapLayerName (ReadOnly)","0":"맵 레이어 이름입니다."}]

##### inherited from Component:

[{"index":"boolean Enable (Sync)","0":"컴포넌트 활성화 여부를 확인합니다."}]

[{"index":"boolean EnableInHierarchy (ReadOnly) (HideFromInspector)","0":"계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니다. Enable이 true일지라도 엔티티의 Enable이 false라면 false를 반환합니다."}]

[{"index":"Entity Entity (ReadOnly)","0":"이 컴포넌트를 소유한 엔티티입니다."}]

# Methods

##### inherited from Component:

[{"index":"boolean IsClient()","0":"현재 실행 환경이 클라이언트인지 아닌지의 여부를 반환합니다."}]

[{"index":"boolean IsServer()","0":"현재 실행 환경이 서버인지 아닌지의 여부를 반환합니다."}]
GlobalDataStoragePages

월드의 GlobalDataStorage들을 조회할 수 있는 기능을 제공합니다.

# Properties

[{"index":"boolean IsLastPage (ReadOnly)","0":"현재 페이지가 마지막 페이지인지 확인합니다."}]

# Methods

[{"index":"table GetCurrentPageDatas() (ServerOnly)","0":"현재 페이지의 GlobalDataStorage 목록을 가져옵니다."}]

[{"index":"int32 LoadNextPageAndWait() (ServerOnly) (Yield)","0":"다음 페이지를 불러오고, 에러 코드를 반환합니다. MoveToNextPageAndWait 함수를 통해 불러온 페이지로 이동할 수 있습니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void MoveToNextPageAndWait() (ServerOnly) (Yield)","0":"다음 페이지로 이동합니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

# Examples

페이지를 순회하는 예제입니다.
    
    
    @Component
    script PaginatedDataHandler extends Component
        @ExecSpace("ServerOnly")
        method void OnBeginPlay()
            while true do
            	local datas = pages:GetCurrentPageDatas()
            	for _, data in pairs(datas) do
            		log(data.Name)
            	end
            
            	-- IsLastPage 프로퍼티를 통해 현재 페이지가 마지막 페이지인지 확인할 수 있습니다.
            	if pages.IsLastPage == true then
            		return
            	end
            
            	-- 다음 페이지의 데이터를 미리 불러오고 다음 페이지가 유효하지 않은 경우 조회를 마칩니다.
            	local loadResultCode = pages:LoadNextPageAndWait()
            	if loadResultCode ~= 0 then
            		return
            	end
            
            	-- 다음 페이지로 이동합니다.
            	pages:MoveToNextPageAndWait()
            end
        end
    end
    

# SeeAlso

  * DataStorageService
CanvasGroupComponent

자식 UI Entity의 공통 속성을 한 곳에서 제어할 수 있는 기능을 제공합니다.

# Properties

[{"index":"boolean BlocksRaycasts","0":"true로 설정할 경우 자식 UI는 화면 터치 또는 마우스 클릭 입력을 받을 수 있습니다. 뒤에 가려진 UI는 입력을 받지 못합니다."}]

[{"index":"float GroupAlpha","0":"자식 UI의 투명도를 설정합니다. 0 이상, 1 이하의 값을 설정할 수 있습니다."}]

[{"index":"boolean Interactable","0":"자식 UI의 상호작용 가능 여부를 설정합니다. false로 설정할 경우 사용자 입력을 받아도 아무런 동작을 하지 않습니다."}]

##### inherited from Component:

[{"index":"boolean Enable (Sync)","0":"컴포넌트 활성화 여부를 확인합니다."}]

[{"index":"boolean EnableInHierarchy (ReadOnly) (HideFromInspector)","0":"계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니다. Enable이 true일지라도 엔티티의 Enable이 false라면 false를 반환합니다."}]

[{"index":"Entity Entity (ReadOnly)","0":"이 컴포넌트를 소유한 엔티티입니다."}]

# Methods

##### inherited from Component:

[{"index":"boolean IsClient()","0":"현재 실행 환경이 클라이언트인지 아닌지의 여부를 반환합니다."}]

[{"index":"boolean IsServer()","0":"현재 실행 환경이 서버인지 아닌지의 여부를 반환합니다."}]

# SeeAlso

  * [기본 UI 컴포넌트](/docs?postId=744)
  * [UI 제작하기](/docs?postId=64)
MobileShareService

ScreenshotService로 찍은 이미지나 ScreenRecordService로 녹화한 영상을 소셜 미디어에 공유하는 기능을 제공합니다.\n모바일 기기에서만 사용할 수 있습니다.

# Methods

[{"index":"boolean ShareFileAndWait(string filePath) (ClientOnly) (Yield)","0":"filePath 경로에 있는 이미지 또는 영상을 공유합니다. 파일이 없거나 공유에 실패한 경우 false를 반환합니다."}]

##### inherited from Service:

[{"index":"EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)","0":"이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다."}]

[{"index":"EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)","0":"이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다."}]

[{"index":"boolean DisconnectEvent(string key, EventHandlerBase eventHandler)","0":"타입의 이름이 key인 이벤트와 핸들러와의 이벤트 연결을 끊습니다."}]

[{"index":"boolean DisconnectEvent(Type eventType, EventHandlerBase eventHandler)","0":"타입이 eventType인 이벤트와 핸들러와의 연결을 끊습니다."}]

[{"index":"void SendEvent(EventType sendEvent)","0":"이벤트를 발생시킵니다."}]

# SeeAlso

  * ScreenRecordService
  * ScreenshotService
  * [플레이 화면 녹화 및 공유하기](/docs?postId=997)
PreloadResultStatus

리소스 로드 수행 결괏값을 나타냅니다.

# Members

[{"이름":"UnknownError","값":"-1","설명":"알 수 없는 에러가 발생했습니다."},{"이름":"Success","값":"0","설명":"정상적으로 리소스를 로드했습니다."},{"이름":"NotFound","값":"1","설명":"요청한 리소스를 찾을 수 없습니다."},{"이름":"InvalidRUID","값":"2","설명":"잘못된 RUID입니다."},{"이름":"InvalidRUIDFormat","값":"3","설명":"잘못된 RUID 형식입니다. RUID는 32자리입니다."},{"이름":"InvalidResource","값":"4","설명":"유효하지 않은 리소스가 로드되었습니다."},{"이름":"InvalidProtocol","값":"5","설명":"잘못된 프로토콜로 리소스를 요청했습니다."},{"이름":"Timeout","값":"6","설명":"리소스 로드 요청 시간을 초과했습니다. 잠시 후 다시 시도하세요."},{"이름":"TypeMismatch","값":"7","설명":"요청과 다른 타입의 리소스가 로드되었습니다."},{"이름":"Unauthorized","값":"8","설명":"권한이 없는 리소스를 요청했습니다."},{"이름":"NetworkError","값":"9","설명":"일시적인 네트워크 에러가 발생했습니다. 잠시 후 다시 시도하세요."}]

# Methods

[{"index":"PreloadResultStatus CastFrom(number value) (Static)","0":"숫자를 해당 타입으로 변환합니다."}]

[{"index":"PreloadResultStatus CastFrom(string value) (Static)","0":"문자열을 해당 타입으로 변환합니다."}]
DirectionSynchronizerComponent

부모 엔티티의 방향을 따라갑니다. 부모 엔티티에서 ChangedLookAtEvent가 발생할 경우 현재 엔티티의 방향도 변경됩니다.

# Properties

##### inherited from Component:

[{"index":"boolean Enable (Sync)","0":"컴포넌트 활성화 여부를 확인합니다."}]

[{"index":"boolean EnableInHierarchy (ReadOnly) (HideFromInspector)","0":"계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니다. Enable이 true일지라도 엔티티의 Enable이 false라면 false를 반환합니다."}]

[{"index":"Entity Entity (ReadOnly)","0":"이 컴포넌트를 소유한 엔티티입니다."}]

# Methods

##### inherited from Component:

[{"index":"boolean IsClient()","0":"현재 실행 환경이 클라이언트인지 아닌지의 여부를 반환합니다."}]

[{"index":"boolean IsServer()","0":"현재 실행 환경이 서버인지 아닌지의 여부를 반환합니다."}]

# Examples

아래 예제는 object-1모델을 워크스페이스에 추가한 뒤에 실행 가능합니다. DefaultPlayer에 아래와 같은 Component를 추가하면 플레이어의 방향과 같은 곳을 바라보는 오브젝트를 생성할 수 있습니다.
    
    
    @Component
    script SpawnAttachment extends Component
        @ExecSpace("ServerOnly")
        method void OnBeginPlay()
        local modelId = "Model Entry ID"
        local attachedEntity = _SpawnService:SpawnByModelId(modelId, "attachedEntity", Vector3.zero, self.Entity, "")
        attachedEntity:AddComponent("DirectionSynchronizerComponent")
        end
    end
    

# SeeAlso

  * SpawnService
원하는 이미지 갖고 오기

# 학습 과정 소개

게임에 필요한 이미지 리소스를 찾아 메이커에서 활용할 수 있습니다.

# 이미지 불러오기

  1. Workspace - MyDesk의 콘텍스트 메뉴를 열고, Import From - Import Image를 선택합니다. [png](1687511864531a541669c7cc441c1985c2a9b4c307622)   

  2. 사용할 이미지를 선택하여 불러옵니다. MyDesk 하위에 불러온 이미지 파일이 개별 생성됩니다. [png](16353942151556a266b763b3343f194c7b4b853fe7c55)   

  3. 원하는 방식으로 이미지를 활용합니다.



# 이미지 활용 방식

이미지를 배치하는 방법은 크게 3가지가 있습니다.

첫 번째 방법은 Workspace - MyDesk에서 사용할 이미지의 콘텍스트 메뉴를 열고 Place To Hierarchy를 클릭하는 것입니다. [png](1687512556186a61f88719dfd4f82994335f2831d5f49)   
두 번째 방법은 Workspace - MyDesk에서 사용할 이미지를 Scene에 배치하는 것입니다. [gif](1656656308226c74e950564b4428db3edd9c04a2368c7)   
세 번째 방법은 Workspace - NativeModel에서 Scene에 배치하고, Sprite RUID와 Image RUID 값을 변경해 사용하는 것입니다. [png](1635395341076bd0bed7dba0d4a6c890d8eafec477074)

크리에이터가 사용하기 편한 방법으로 이미지를 활용해 봅시다.

##### 참고 가이드

[스프라이트 색상 조정](/docs?postId=116)
InputContentType

TextInputComponent에 입력 가능한 타입을 나타냅니다.

# Members

[{"이름":"Standard","값":"0","설명":"모든 형태의 입력을 허용합니다."},{"이름":"Autocorrected","값":"1","설명":"모든 입력을 허용합니다. 자동 수정을 지원하는 플랫폼에서 입력이 자동으로 수정됩니다."},{"이름":"IntegerNumber","값":"2","설명":"숫자 입력만 허용합니다."},{"이름":"DecimalNumber","값":"3","설명":"소수점 이하 한 자리까지 숫자를 입력할 수 있습니다."},{"이름":"Alphanumeric","값":"4","설명":"영어 대소문자와 숫자를 입력할 수 있습니다."},{"이름":"Name","값":"5","설명":"첫 번째 글자가 대문자로 표시됩니다."},{"이름":"EmailAddress","값":"6","설명":"이메일 주소를 입력할 수 있습니다. 영어와 숫자 입력을 허용합니다. 마침표는 연속해서 입력할 수 없습니다."},{"이름":"Password","값":"7","설명":"모든 문자 입력을 허용합니다. 입력된 문자는 *로 표시합니다."},{"이름":"Pin","값":"8","설명":"숫자 입력만 허용합니다. 입력된 숫자는 *로 표시합니다."},{"이름":"Custom","값":"9","설명":"사용자 지정한 타입만 입력을 허용합니다. Line Type, Input Type, Keyboard Type, 문자열 검증 중에 선택합니다."}]

# Methods

[{"index":"InputContentType CastFrom(number value) (Static)","0":"숫자를 해당 타입으로 변환합니다."}]

[{"index":"InputContentType CastFrom(string value) (Static)","0":"문자열을 해당 타입으로 변환합니다."}]
DataStorageVersionPages

DataStorage의 데이터의 버전들을 조회하는 기능을 제공합니다.

# Properties

[{"index":"boolean IsLastPage (ReadOnly)","0":"현재 페이지가 마지막 페이지인지 확인합니다."}]

# Methods

[{"index":"table GetCurrentPageDatas() (ServerOnly)","0":"현재 페이지의 버전 목록을 가져옵니다."}]

[{"index":"int32 LoadNextPageAndWait() (ServerOnly) (Yield)","0":"다음 페이지를 불러오고, 에러 코드를 반환합니다. MoveToNextPageAndWait 함수를 통해 불러온 페이지로 이동할 수 있습니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"void MoveToNextPageAndWait() (ServerOnly) (Yield)","0":"다음 페이지로 이동합니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

# Examples

페이지를 순회하는 예제입니다.
    
    
    @Component
    script PaginatedDataLoader extends Component
        @ExecSpace("ServerOnly")
        method void OnBeginPlay()
            while true do
            	local datas = pages:GetCurrentPageDatas()
            	for _, data in pairs(datas) do
            		-- DataStorageVersionInfo를 통해 생성 시간과 Version 값을 조회할 수 있습니다.
            		log(data.CreateTime)
            		log(data.Version)
            	end
            
            	-- IsLastPage 프로퍼티를 통해 현재 페이지가 마지막 페이지인지 확인할 수 있습니다.
            	if pages.IsLastPage == true then
            		return
            	end
            
            	-- 다음 페이지의 데이터를 미리 불러오고 다음 페이지가 유효하지 않은 경우 조회를 마칩니다.
            	local loadResultCode = pages:LoadNextPageAndWait()
            	if loadResultCode ~= 0 then
            		return
            	end
            
            	-- 다음 페이지로 이동합니다.
            	pages:MoveToNextPageAndWait()
            end
        end
    end
    

# SeeAlso

  * DataStorageVersionInfo
  * DataStorageService
RevoluteJoint

두 Entity를 한 점에서 연결하고 해당 지점을 기준으로 회전하도록 합니다. RevoluteJointComponent의 Joints에 추가해 사용합니다.

# Properties

[{"index":"boolean CollideConnected","0":"Joint로 연결된 두 Entity가 서로 충돌할지 여부를 설정합니다."}]

[{"index":"Vector2 LocalAnchorA","0":"JointComponent를 가진 Entity의 Anchor를 설정합니다. Entity 기준 상대 좌표를 사용합니다."}]

[{"index":"Vector2 LocalAnchorB","0":"Joint로 연결된 Entity의 Anchor를 설정합니다. Entity 기준 상대 좌표를 사용합니다."}]

[{"index":"float LowerAngle","0":"Joint로 연결된 두 Entity의 최소 상대 각도를 설정합니다."}]

[{"index":"float MaxMotorTorque","0":"목표 모터 속도에 도달하기 위한 joint의 모터에 적용할 수 있는 최대 힘을 설정합니다."}]

[{"index":"boolean MotorEnable","0":"Joint의 모터 기능을 사용할지 여부를 설정합니다. true일 경우 MotorSpeed 값에 영향을 받습니다."}]

[{"index":"float MotorSpeed","0":"Joint의 목표 모터 속도를 설정합니다."}]

[{"index":"EntityRef TargetEntityRef","0":"Joint로 연결할 Entity를 설정합니다."}]

[{"index":"float UpperAngle","0":"Joint로 연결된 두 Entity의 최대 상대 각도를 설정합니다."}]

[{"index":"boolean UseLimits","0":"Joint로 연결된 두 Entity의 상대 각도에 제한을 둘지 여부를 설정합니다. true일 경우 LowerAngle과 UpperAngle 값에 영향을 받습니다."}]

# Constructors

[{"index":"RevoluteJoint()","0":"기본값으로 RevoluteJoint를 초기화합니다."}]

[{"index":"RevoluteJoint(RevoluteJoint joint)","0":"지정한 joint와 동일한 값으로 RevoluteJoint를 초기화합니다."}]
SpriteParticleType

SpriteParticleComponent에서 사용하는 파티클 프리셋 타입입니다.

# Members

[{"이름":"nan","값":"0","설명":"기본값입니다. 사용 중인 파티클이 없습니다."},{"이름":"BurstBig","값":"1","설명":"퍼지는 원형 효과와 함께 지정한 스프라이트가 나타납니다."},{"이름":"SpawnField","값":"2","설명":"작은 입자들과 지정한 스프라이트가 함께 원 영역에 여러 개 나타납니다."},{"이름":"BurstNova","값":"3","설명":"작은 입자들과 지정한 스프라이트가 원 영역에 폭발합니다."},{"이름":"SimpleSpawn","값":"4","설명":"작은 입자들과 지정한 스프라이트가 나타납니다."},{"이름":"Burst","값":"5","설명":"작은 입자들과 지정한 스프라이트가 퍼지며 나타납니다."},{"이름":"Stream","값":"6","설명":"작은 입자들과 지정한 스프라이트가 일정 방향으로 이동하며 생성됩니다."},{"이름":"StreamSharp","값":"7","설명":"작은 입자들과 지정한 스프라이트가 얇은 선과 함께 일정 방향으로 이동하며 생성됩니다."},{"이름":"AdditiveColor","값":"8","설명":"지정한 스프라이트에 색상 효과를 적용합니다."}]

# Methods

[{"index":"SpriteParticleType CastFrom(number value) (Static)","0":"숫자를 해당 타입으로 변환합니다."}]

[{"index":"SpriteParticleType CastFrom(string value) (Static)","0":"문자열을 해당 타입으로 변환합니다."}]
UISpriteParticleType

UISpriteParticleComponent에서 사용하는 파티클 프리셋 타입입니다.

# Members

[{"이름":"nan","값":"0","설명":"기본값입니다. 사용하는 파티클이 없습니다."},{"이름":"BurstBig","값":"1","설명":"퍼지는 원형 효과와 함께 지정한 스프라이트가 나타납니다."},{"이름":"SpawnField","값":"2","설명":"작은 입자들과 지정한 스프라이트가 함께 원 영역에 여러 개 나타납니다."},{"이름":"BurstNova","값":"3","설명":"작은 입자들과 지정한 스프라이트가 원 영역에 폭발합니다."},{"이름":"SimpleSpawn","값":"4","설명":"작은 입자들과 지정한 스프라이트가 나타납니다."},{"이름":"Burst","값":"5","설명":"작은 입자들과 지정한 스프라이트가 퍼지며 나타납니다."},{"이름":"Stream","값":"6","설명":"작은 입자들과 지정한 스프라이트가 일정 방향으로 이동하며 생성됩니다."},{"이름":"StreamSharp","값":"7","설명":"작은 입자들과 지정한 스프라이트가 얇은 선과 함께 일정 방향으로 이동하며 생성됩니다."},{"이름":"AdditiveColor","값":"8","설명":"지정한 스프라이트에 색상 효과를 적용합니다."}]

# Methods

[{"index":"UISpriteParticleType CastFrom(number value) (Static)","0":"숫자를 해당 타입으로 변환합니다."}]

[{"index":"UISpriteParticleType CastFrom(string value) (Static)","0":"문자열을 해당 타입으로 변환합니다."}]