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

지정한 값으로 SpriteAnimPlayerEndEvent를 초기화합니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * SpriteGUIRendererComponent (Space;Client)



# Properties

[{"index":"Entity Entity","0":"이벤트가 발생한 엔티티입니다."}]

[{"index":"int32 FrameIndex (ReadOnly)","0":"프레임 번호입니다."}]

[{"index":"boolean ReversePlaying (ReadOnly)","0":"역 재생 여부를 나타냅니다."}]

[{"index":"int32 TotalFrameCount (ReadOnly)","0":"스프라이트 애니메이션을 구성하는 총 프레임 수입니다."}]

# Constructors

[{"index":"SpriteGUIAnimPlayerEndFrameEvent(Entity entity = nil, int32 frameIndex = -1, boolean reversePlaying = false, int32 totalFrameCount = 0)","0":"지정한 값으로 SpriteGUIAnimPlayerEndFrameEvent를 초기화합니다."}]
ButtonState

버튼 상태를 나타냅니다.

# Members

[{"이름":"Normal","값":"0","설명":"기본값입니다."},{"이름":"Hover","값":"1","설명":"버튼 위에 포인터가 올라간 상태입니다."},{"이름":"Pressed","값":"2","설명":"버튼을 누른 상태입니다."},{"이름":"Released","값":"3","설명":"버튼이 눌리다 떼진 때로 변한 상태입니다."},{"이름":"Clicked","값":"4","설명":"버튼이 짧은 시간 동안만 눌렸다 떼진 상태입니다."}]

# Methods

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

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

리더보드초기화 방식을 나타냅니다. 리더보드가 초기화될 때마다 새 시즌이 시작됩니다.

# Properties

[{"index":"DateTime ResettingAt (ReadOnly)","0":"다음 리셋 날짜와 시각입니다. ResetType이 Never일 경우 nil입니다."}]

[{"index":"LeaderboardSeasonResetType ResetType","0":"초기화 방식입니다."}]

[{"index":"string Schedule","0":"새로운 시즌이 시작되는 주기를 Cron 표현식으로 지정합니다. 예를 들어, '0 9 15 * *'로 설정하면 매달 15일 오전 9시에 리더보드가 초기화되고 새로운 시즌이 시작됩니다."}]

# Constructors

[{"index":"LeaderboardSeasonResetInfo()","0":"지정한 값으로 LeaderBoardSeasonResetInfo를 초기화합니다."}]
WeldJoint

두 Entity의 상대적 회전 및 이동을 제한합니다. WeldJointComponent의 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":"EntityRef TargetEntityRef","0":"Joint로 연결할 Entity를 설정합니다."}]

# Constructors

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

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

승패 결과에 따라 순위를 계산하는 방식입니다.

# Members

[{"이름":"Unknown","값":"-1","설명":"조회 중 알 수 없는 오류가 발생했습니다."},{"이름":"nan","값":"0","설명":"순위를 계산하지 않습니다."},{"이름":"Elo","값":"1","설명":"전통적인 Elo 레이팅 방식입니다."},{"이름":"MSW","값":"2","설명":"Elo 방식과 동일하지만, 점수 변동에 영향을 주는 파라미터가 조정되어 있습니다."}]

# Methods

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

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

스프라이트 애니메이션 재생이 시작될 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * ClimbableSpriteRendererComponent (Space;Client)
  * SpriteRendererComponent (Space;Client)



# Properties

[{"index":"float ClipPlayRate (ReadOnly)","0":"클립 재생 속도입니다."}]

[{"index":"SpriteAnimClipPlayType ClipPlayType (ReadOnly)","0":"클립을 재생하는 방식입니다."}]

##### inherited from SpriteAnimPlayerEvent:

[{"index":"IEmbeddedSpriteAnimPlayer AnimPlayer (ReadOnly)","0":"애니메이션 플레이어입니다."}]

# Constructors

[{"index":"SpriteAnimPlayerStartEvent(IEmbeddedSpriteAnimPlayer animPlayer = nil, SpriteAnimClipPlayType clipPlayType = SpriteAnimClipPlayType.Onetime, float clipPlayRate = 1)","0":"지정한 값으로 SpriteAnimPlayerStartEvent를 초기화합니다."}]
TotalServerFunctionRateLimitEvent

server 실행 제어 함수의 총 호출량이 제한을 초과했을 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * RateLimitService (Space;Server)



# Properties

[{"index":"string EntityId","0":"함수의 컴포넌트가 속한 엔티티의 Id입니다."}]

[{"index":"string FunctionName","0":"함수 이름입니다."}]

[{"index":"string ProfileCode","0":"함수를 호출한 유저의 프로필 코드입니다."}]

[{"index":"string TypeName","0":"함수가 속한 컴포넌트, 서비스, 로직의 이름입니다."}]

# Constructors

[{"index":"TotalServerFunctionRateLimitEvent(string profileCode = nil, string entityId = nil, string typeName = nil, string functionName = nil)","0":"지정한 값으로 TotalServerFunctionRateLimitEvent를 초기화합니다."}]
SliderDirection

SliderComponent의 스크롤 방향입니다.

# Members

[{"이름":"LeftToRight","값":"0","설명":"스크롤 바가 왼쪽에서 오른쪽으로 움직입니다."},{"이름":"RightToLeft","값":"1","설명":"스크롤 바가 오른쪽에서 왼쪽으로 움직입니다."},{"이름":"BottomToTop","값":"2","설명":"스크롤 바가 하단에서 상단으로 움직입니다."},{"이름":"TopToBottom","값":"3","설명":"스크롤 바가 상단에서 하단으로 움직입니다."}]

# Methods

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

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

상호작용 방식을 설정합니다.

# Members

[{"이름":"KeyDown","값":"0","설명":"키보드 키를 눌렀을 때입니다."},{"이름":"KeyUp","값":"1","설명":"키보드 키를 눌렀다 뗄 때입니다."},{"이름":"KeyHoldingDuration","값":"2","설명":"설정한 HoldingDuration 이상으로 키보드 키를 누르고 있을 때입니다."},{"이름":"KeyUpAfterHoldingDuration","값":"3","설명":"설정한 HoldingDuration 이상으로 키보드 키를 누르다 떼었을 때입니다."}]

# Methods

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

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

컴포넌트를 참조합니다. 컴포넌트의 Id를 갖고 있다가 실제로 접근이 필요할 때 컴포넌트를 찾습니다. 사용법은 Component 타입과 똑같습니다.

# Properties

[{"index":"string EntityId (ReadOnly)","0":"참조하고 있는 Component를 가진 Entity의 Id입니다."}]

[{"index":"string TypeName (ReadOnly)","0":"참조하고 있는 Component의 타입명입니다."}]

# Constructors

[{"index":"ComponentRef(Component component)","0":"지정한 component를 참조하는 ComponentRef를 초기화합니다."}]

[{"index":"ComponentRef(string entityId, Type componentType)","0":"entityId, componentType가 가리키는 컴포넌트를 참조하는 ComponentRef를 초기화합니다."}]

# SeeAlso

  * Component
  * [프로퍼티](/docs?postId=205)
RigidbodyAttachEvent

엔티티가 RigidbodyComponent:AttachTo(string, Vector3)를 통해 특정 엔티티에 붙었을 때 발생하는 이벤트입니다. 플레이어는 클라이언트에서 발생하고, 그 외의 엔티티는 서버 공간에서 발생합니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * RigidbodyComponent (Space;Server,Client)



# Properties

[{"index":"Entity AttachedEntity","0":"다른 엔티티가 붙을 기준이 되는 엔티티입니다."}]

[{"index":"Vector2 Offset","0":"AttachedEntity를 기준으로 부착한 엔티티의 Offset을 설정합니다."}]

# Constructors

[{"index":"RigidbodyAttachEvent(Entity attachedEntity = nil, Vector2 offset = nil)","0":"지정한 값으로 RigidbodyAttachEvent를 초기화합니다."}]
GridLayoutConstraint

부모 엔티티에 크기에 따른 자식 UI 엔티티 정렬 방식입니다. ScrollLayoutGroupComponent가 GridType 경우 설정할 수 있습니다.

# Members

[{"이름":"Flexible","값":"0","설명":"자식 엔티티 정렬 시 행과 열 개수를 자동으로 정합니다."},{"이름":"FixedColumnCount","값":"1","설명":"자식 엔티티 정렬 시 열 개수를 고정합니다."},{"이름":"FixedRowCount","값":"2","설명":"자식 엔티티 정렬 시 행 개수를 고정합니다."}]

# Methods

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

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

풋홀드 위의 RigidbodyComponent에게 적용할 옵션을 설정합니다.

# Members

[{"이름":"RelativeX","값":"0","설명":"x축 관성은 적용하고, y축 관성은 적용하지 않습니다. 플레이어가 발판의 이동 방향과 반대로 움직이면 속도가 감속하고, 같은 방향으로 움직이면 가속합니다."},{"이름":"Absolute","값":"1","설명":"플레이어가 어느 방향으로 움직여도 속도가 동일합니다."}]

# Methods

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

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

화면 녹화 상태를 의미합니다.

# Members

[{"이름":"Success","값":"0","설명":"화면 녹화 시작에 성공했습니다."},{"이름":"DeviceNotSupported","값":"1","설명":"기기에서 화면 녹화를 지원하지 않습니다."},{"이름":"AlreadyInProgress","값":"2","설명":"이미 화면 녹화 중 입니다."},{"이름":"Failed","값":"3","설명":"화면 녹화 시작에 실패했습니다."},{"이름":"DeniedStorageAccess","값":"4","설명":"사진보관함, 파일 저장 접근에 실패했습니다."}]

# Methods

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

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

유저 계정이 가입된 지역을 나타냅니다. 계정을 만들 때 접속한 지역을 기준으로 자동으로 정해집니다.

# Members

[{"이름":"Unknown","값":"-1","설명":"내부 오류가 발생했습니다."},{"이름":"KR","값":"0","설명":"한국 지역입니다."},{"이름":"GlobalEastAsia","값":"1","설명":"동아시아 지역입니다."},{"이름":"GlobalSoutheastAsia","값":"2","설명":"동남아시아 지역입니다."},{"이름":"GlobalWest","값":"3","설명":"기타 지역입니다."}]

# Methods

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

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

배경 종류를 나타냅니다.

# Members

[{"이름":"Unknown","값":"0","설명":"기본값입니다. 사용하는 배경이 없습니다."},{"이름":"Template","값":"1","설명":"메이플스토리 월드가 제공하는 배경입니다."},{"이름":"SolidColor","값":"2","설명":"단일 색상 배경입니다."},{"이름":"Web","값":"3","설명":"웹 이미지 배경입니다."},{"이름":"Gradient","값":"4","설명":"그라데이션 배경입니다."},{"이름":"Sprite","값":"5","설명":"단일 스프라이트 이미지 배경입니다."}]

# Methods

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

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

엔티티를 터치하는 동안 발생하는 이벤트입니다. 엔티티에 TouchReceiveComponent가 있어야 이벤트가 발생합니다. 짧게 터치하면 발생하지 않습니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * TouchReceiveComponent (Space;Client)



# Properties

[{"index":"int32 TouchId","0":"발생한 입력 형태를 고유하게 나타내는 Id입니다. 마우스 좌클릭은 1입니다. 모바일 기기에서 발생한 터치 입력은 1부터 증가합니다."}]

[{"index":"Vector2 TouchPoint","0":"터치가 발생한 스크린 좌표입니다."}]

# Constructors

[{"index":"TouchHoldEvent(Vector2 touchPoint = Vector2(0, 0), int32 touchId = 1)","0":"지정한 값으로 TouchHoldEvent를 초기화합니다."}]
BodyType

물리 강체의 타입입니다.

# Members

[{"이름":"Static","값":"0","설명":"질량이 무한히 큰 강체로 취급됩니다. 물리 엔진에 의해 움직이지 않습니다. Dynamic만 충돌합니다."},{"이름":"Kinematic","값":"1","설명":"질량이 무한히 큰 강체로 취급되지만 속도를 부여해 움직일 수 있습니다."},{"이름":"Dynamic","값":"2","설명":"모든 BodyType과 충돌할 수 있습니다. 물리 엔진에 의해 제어됩니다."}]

# Methods

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

[{"index":"BodyType CastFrom(string value) (Static)","0":"문자열을 해당 타입으로 변환합니다."}]
[MCI22] MSW 쇼케이스

메이플스토리 월드의 시작과 현재 그리고 앞으로의 비전을 소개합니다.

$$youtube /uP7UcSYWS6Q?t=2150 $$

[35:50](https://www.youtube.com/watch?v=uP7UcSYWS6Q&t=2150s) Beginning of MapleStory Worlds \- 넥슨코리아 부사장 김대훤 [41:56](https://www.youtube.com/watch?v=uP7UcSYWS6Q&t=2516s) MSW 시범 서비스 리뷰 그리고 앞으로의 개발 계획 \- 넥슨코리아 MSW실 디렉터 신민석 [1:02:07](https://www.youtube.com/watch?v=uP7UcSYWS6Q&t=3727s) MSW의 미래 \- 넥슨코리아 N플랫폼사업실 실장 오세형
TouchReleaseEvent

엔티티를 터치를 뗐을 때 발생하는 이벤트입니다. 엔티티에 TouchReceiveComponent가 있어야 이벤트가 발생합니다. 짧게 터치하면 발생하지 않습니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * TouchReceiveComponent (Space;Client)



# Properties

[{"index":"int32 TouchId","0":"발생한 입력 형태를 고유하게 나타내는 Id입니다. 마우스 좌클릭은 1입니다. 모바일 기기에서 발생한 터치 입력은 1부터 증가합니다."}]

[{"index":"Vector2 TouchPoint","0":"터치가 발생한 스크린 좌표입니다."}]

# Constructors

[{"index":"TouchReleaseEvent(Vector2 touchPoint = Vector2(0, 0), int32 touchId = 1)","0":"지정한 값으로 TouchReleaseEvent를 초기화합니다."}]
ServerFunctionRateLimitEvent

특정 컴포넌트, 서비스, 로직의 server 실행 제어 함수의 호출량이 제한을 초과했을 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * RateLimitService (Space;Server)



# Properties

[{"index":"string EntityId","0":"함수의 컴포넌트가 속한 엔티티의 Id입니다."}]

[{"index":"string FunctionName","0":"함수 이름입니다."}]

[{"index":"string ProfileCode","0":"함수를 호출한 유저의 프로필 코드입니다."}]

[{"index":"string TypeName","0":"함수가 속한 컴포넌트, 서비스, 로직의 이름입니다."}]

# Constructors

[{"index":"ServerFunctionRateLimitEvent(string profileCode = nil, string entityId = nil, string typeName = nil, string functionName = nil)","0":"지정한 값으로 ServerFunctionRateLimitEvent를 초기화합니다."}]
UserReconnectEvent

유저가 재접속되었을 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * UserService (Space;Server)



# Properties

[{"index":"string ProfileCode","0":"유저의 프로필 코드입니다."}]

[{"index":"string ReconnectMapName","0":"유저가 재접속한 맵의 이름입니다."}]

[{"index":"DateTime TimeNetworkClosed","0":"유저의 접속이 끊겼던 시간입니다."}]

[{"index":"string UserId","0":"유저의 고유 식별자입니다."}]

# Constructors

[{"index":"UserReconnectEvent(IUser user)","0":"지정한 값으로 UserReconnectEvent를 초기화합니다."}]

[{"index":"UserReconnectEvent(string reconnectMapName = nil, DateTime timeNetworkClosed = nil, string userId = nil, string profileCode = nil)","0":"지정한 값으로 UserReconnectEvent를 초기화합니다."}]
SpriteGUIAnimPlayerChangeFrameEvent

스프라이트 애니메이션의 프레임이 바뀔 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * SpriteGUIRendererComponent (Space;Client)



# Properties

[{"index":"Entity Entity","0":"이벤트가 발생한 엔티티입니다."}]

[{"index":"int32 FrameIndex (ReadOnly)","0":"갱신된 프레임 번호입니다."}]

[{"index":"boolean ReversePlaying (ReadOnly)","0":"역 재생 여부를 나타냅니다."}]

[{"index":"int32 TotalFrameCount (ReadOnly)","0":"스프라이트 애니메이션을 구성하는 총 프레임 수입니다."}]

# Constructors

[{"index":"SpriteGUIAnimPlayerChangeFrameEvent(Entity entity = nil, int32 frameIndex = -1, boolean reversePlaying = false, int32 totalFrameCount = 0)","0":"지정한 값으로 SpriteGUIAnimPlayerChangeFrameEvent를 초기화합니다."}]
EntityRef

엔티티를 참조합니다. 엔티티의 Id를 갖고 있다가 실제로 접근이 필요할 때 엔티티를 찾습니다.

# Properties

[{"index":"string EntityId (ReadOnly)","0":"참조하고 있는 Entity의 Id입니다."}]

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

# Constructors

[{"index":"EntityRef(Entity entity)","0":"지정한 entity를 참조하는 EntityRef를 초기화합니다."}]

[{"index":"EntityRef(string entityId)","0":"지정한 entityId를 가리키는 엔티티를 참조하는 EntityRef를 초기화합니다."}]

[{"index":"EntityRef(string entityId, string entityPath) (Deprecated)","0":"더는 사용하지 않는 생성자입니다."}]

# SeeAlso

  * Entity
  * [프로퍼티](/docs?postId=205)
ImageType

ImageComponent에서 이미지 표시 방식을 나타냅니다.

# Members

[{"이름":"Simple","값":"0","설명":"원본 이미지를 출력합니다."},{"이름":"Sliced","값":"1","설명":"스프라이트 슬라이스 영역을 반영하여 출력합니다. 이미지 크기를 조정했을 때 왜곡 없이 출력합니다."},{"이름":"Tiled","값":"2","설명":"이미지를 반복 출력합니다. 타일처럼 동일한 이미지를 반복 출력합니다."},{"이름":"Filled","값":"3","설명":"영역에 이미지의 특정 부분만 채워 출력합니다."}]

# Methods

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

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

스프라이트 애니메이션이 첫번째 프레임을 재생할 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * SpriteGUIRendererComponent (Space;Client)



# Properties

[{"index":"Entity Entity","0":"이벤트가 발생한 엔티티입니다."}]

[{"index":"int32 FrameIndex (ReadOnly)","0":"프레임 번호입니다."}]

[{"index":"boolean ReversePlaying (ReadOnly)","0":"역 재생 여부를 나타냅니다."}]

[{"index":"int32 TotalFrameCount (ReadOnly)","0":"스프라이트 애니메이션을 구성하는 총 프레임 수입니다."}]

# Constructors

[{"index":"SpriteGUIAnimPlayerStartFrameEvent(Entity entity = nil, int32 frameIndex = -1, boolean reversePlaying = false, int32 totalFrameCount = 0)","0":"지정한 값으로 SpriteGUIAnimPlayerStartFrameEvent를 초기화합니다."}]
SpawnLocationComponent

SpawnLocation Model에서만 사용하는 특수 컴포넌트입니다.

# 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":"현재 실행 환경이 서버인지 아닌지의 여부를 반환합니다."}]
SharedVariableKeyInfo

공유 변수를 식별하는 데 사용하는 정보입니다.

# Properties

[{"index":"string ETag","0":"변수를 업데이트 할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. 변수가 업데이트 되면 새로운 ETag가 만들어집니다."}]

[{"index":"string Name","0":"변수 이름입니다."}]

# Constructors

[{"index":"SharedVariableKeyInfo()","0":"기본값으로 SharedVariableKeyInfo를 생성합니다."}]

[{"index":"SharedVariableKeyInfo(string name, string eTag)","0":"주어진 이름, ETag로 SharedVariableKeyInfo를 생성합니다."}]
배경음악 변경하기

# 학습 과정 소개

게임에 어울리는 배경음악을 간편하게 넣어봅시다.

# 배경음악 넣기

  1. Preset List - BGM을 선택합니다. [png](16596847059157420a230623740199887ec4783c6f7db)   

  2. 원하는 배경음악을 클릭합니다.   

  3. map의 Property에 [SoundComponent](/apiReference/Components/SoundComponent)가 추가된 것을 확인할 수 있습니다. [png](1686532850382c535b46148644216b06c69ac0e68bf02) 제어할 수 있는 프로퍼티에 대한 자세한 내용은 [SoundComponent](/apiReference/Components/SoundComponent) 항목을 참고합니다.   

  4.  시작을 누른 뒤 테스트해 봅시다. 맵에서 배경음악이 재생되는 것을 확인할 수 있습니다.
TextOverflowMode

텍스트 박스의 가로 영역을 넘어가는 텍스트 처리 방식을 설정합니다.

# Members

[{"이름":"Overflow","값":"0","설명":"영역을 벗어난 텍스트를 그대로 표시합니다."},{"이름":"Ellipsis","값":"1","설명":"영역을 벗어난 텍스트를 잘라냅니다. 잘린 텍스트는 줄임표로 대체됩니다."},{"이름":"Truncate","값":"2","설명":"영역을 벗어난 텍스트를 잘라냅니다."},{"이름":"Page","값":"3","설명":"텍스트를 여러 페이지로 잘라 표시합니다."}]

# Methods

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

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

새 점수가 등록되었을 때 점수를 갱신하는 방식입니다.

# Members

[{"이름":"Unknown","값":"-1","설명":"조회 중 알 수 없는 오류가 발생했습니다."},{"이름":"High","값":"0","설명":"새 점수가 기존 점수보다 높을 때만 갱신합니다."},{"이름":"Last","값":"1","설명":"항상 새 점수로 갱신합니다. 리더보드에 순위를 적용하려면 이 방식을 사용해야 합니다."},{"이름":"Cumulative","값":"2","설명":"기존 점수에 새 점수를 더합니다."}]

# Methods

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

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

월드를 나타내는 컴포넌트입니다. 별도로 사용할 경우는 없습니다.

# 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":"현재 실행 환경이 서버인지 아닌지의 여부를 반환합니다."}]
UserDisconnectEvent

유저의 네트워크 접속이 불안정하여 끊겼을 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * UserService (Space;Server)



# Properties

[{"index":"string DisconnectMapName","0":"유저의 접속이 끊겼던 맵의 이름입니다."}]

[{"index":"string ProfileCode","0":"유저의 프로필 코드입니다."}]

[{"index":"DateTime TimeNetworkClosed","0":"유저의 접속이 끊겼던 시간입니다."}]

[{"index":"string UserId","0":"유저의 고유 식별자입니다."}]

# Constructors

[{"index":"UserDisconnectEvent(IUser user)","0":"지정한 값으로 UserDisconnectEvent를 초기화합니다."}]

[{"index":"UserDisconnectEvent(string disconnectMapName = nil, DateTime timeNetworkClosed = nil, string userId = nil, string profileCode = nil)","0":"지정한 값으로 UserDisconnectEvent를 초기화합니다."}]
InstanceRoom

인스턴스 룸 관련 기능을 제공합니다.

# Properties

[{"index":"string InstanceKey (ReadOnly)","0":"인스턴스 룸 식별자입니다."}]

# Methods

[{"index":"int32 GetUserCount()","0":"인스턴스 룸에 속한 유저 수를 반환합니다."}]

[{"index":"boolean IsValid()","0":"인스턴스 룸이 유효한지 여부를 반환합니다."}]

[{"index":"boolean MoveUser(string userId, string mapName = nil) (Yield)","0":"userId에 해당하는 유저를 이 인스턴스 룸으로 이동시킵니다. 수행하는 동안 스크립트 실행을 중단합니다."}]

[{"index":"int32 MoveUsers(table userIds, string mapName = nil) (Yield)","0":"userIds에 해당하는 유저들을 이 인스턴스 룸으로 이동시킵니다. 수행하는 동안 스크립트 실행을 중단합니다."}]
Component

모든 컴포넌트의 부모 컴포넌트입니다. 컴포넌트 기본 기능을 제공합니다.

# Properties

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

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

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

# Methods

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

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

물리 충돌의 감지 방식을 설정합니다.

# Members

[{"이름":"Discrete","값":"0","설명":"충돌을 비연속적으로 확인합니다. 물체의 속도와 크기에 따라 충돌을 감지하지 못할 수 있습니다. 속도가 빠르거나, 크기가 작을수록 충돌을 감지하지 못하고 통과할 가능성이 있습니다."},{"이름":"Continuous","값":"1","설명":"충돌을 연속적으로 확인합니다. 물체가 충돌하지 못하고 통과하는 상황을 막습니다. 연산에 더 많은 자원이 필요합니다."}]

# Methods

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

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

UI Entity를 드래그하기 시작할 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * UITouchReceiveComponent (Space;Client)



# Properties

[{"index":"Entity Entity","0":"이벤트가 발생한 엔티티입니다."}]

[{"index":"int32 TouchId","0":"입력 값을 나타내는 식별자입니다. 마우스 좌클릭은 -1, 우클릭은 -2, 휠 클릭은 -3입니다. 모바일 기기에서 터치는 1이고 다중 터치 시 입력 개수만큼 증가합니다."}]

[{"index":"Vector2 TouchPoint","0":"이벤트가 발생한 스크린 좌표입니다."}]

# Constructors

[{"index":"UITouchBeginDragEvent(Entity entity = nil, int32 touchId = 0, Vector2 touchPoint = Vector2(0, 0))","0":"지정한 값으로 UITouchBeginDragEvent를 초기화합니다."}]
UITouchEndDragEvent

UI Entity 드래그를 마칠 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * UITouchReceiveComponent (Space;Client)



# Properties

[{"index":"Entity Entity","0":"이벤트가 발생한 엔티티입니다."}]

[{"index":"int32 TouchId","0":"입력 값을 나타내는 식별자입니다. 마우스 좌클릭은 -1, 우클릭은 -2, 휠 클릭은 -3입니다. 모바일 기기에서 터치는 1이고 다중 터치 시 입력 개수만큼 증가합니다."}]

[{"index":"Vector2 TouchPoint","0":"이벤트가 발생한 스크린 좌표입니다."}]

# Constructors

[{"index":"UITouchEndDragEvent(Entity entity = nil, int32 touchId = 0, Vector2 touchPoint = Vector2(0, 0))","0":"지정한 값으로 UITouchEndDragEvent를 초기화합니다."}]
UIGroupType

UI 그룹 타입을 나타냅니다. 크리에이터는 모든 UIGroup의 UIGroupType을 자유롭게 변경할 수 있습니다.

# Members

[{"이름":"nan","값":"0","설명":"현재는 사용되지 않습니다."},{"이름":"DefaultType","값":"1","설명":"기본 UIGroup입니다. 월드 최초 생성 시 자동으로 생성됩니다. DefaultType으로 설정하면 삭제할 수 없습니다."},{"이름":"UIType","값":"2","설명":"UI 에디터에서 직접 생성한 UIGroup입니다."},{"이름":"EditorType","값":"3","설명":"UI 에디터에서 직접 생성한 UIGroup입니다. Scene 편집 중 사용할 수 있는 Editor UIGroup이 됩니다."}]

# Methods

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

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

UI Entity에서 터치나 클릭을 뗐을 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * UITouchReceiveComponent (Space;Client)



# Properties

[{"index":"Entity Entity","0":"이벤트가 발생한 엔티티입니다."}]

[{"index":"int32 TouchId","0":"입력 값을 나타내는 식별자입니다. 마우스 좌클릭은 -1, 우클릭은 -2, 휠 클릭은 -3입니다. 모바일 기기에서 터치는 1이고 다중 터치 시 입력 개수만큼 증가합니다."}]

[{"index":"Vector2 TouchPoint","0":"이벤트가 발생한 스크린 좌표입니다."}]

# Constructors

[{"index":"UITouchUpEvent(Entity entity = nil, int32 touchId = 0, Vector2 touchPoint = Vector2(0, 0))","0":"지정한 값으로 UITouchUpEvent를 초기화합니다."}]
GlobalTypeOverlayLightInfo

맵에 스폰할 Global 타입의 광원 정보입니다.

# Properties

[{"index":"Color Color","0":"광원의 색상입니다."}]

[{"index":"Entity Instigator","0":"광원이 생성될 맵에 소속된 엔티티입니다."}]

[{"index":"float Intensity","0":"광원의 강도입니다."}]

[{"index":"float Lifetime","0":"광원이 표시될 시간입니다. 적혀있는 시간을 경과하면 생성되었던 광원이 자동으로 사라집니다. 단, 0 이하의 값을 입력할 경우에는 아무리 시간이 지나도 사라지지 않습니다."}]

# Constructors

[{"index":"GlobalTypeOverlayLightInfo(Entity instigator)","0":"지정한 값으로 GlobalTypeOverlayLightInfo를 초기화합니다."}]

[{"index":"GlobalTypeOverlayLightInfo(Entity instigator, float lifetime, Color color, float intensity)","0":"지정한 값으로 GlobalTypeOverlayLightInfo를 초기화합니다."}]
UITouchDownEvent

UI Entity를 터치하거나 클릭했을 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * UITouchReceiveComponent (Space;Client)



# Properties

[{"index":"Entity Entity","0":"이벤트가 발생한 엔티티입니다."}]

[{"index":"int32 TouchId","0":"입력 값을 나타내는 식별자입니다. 마우스 좌클릭은 -1, 우클릭은 -2, 휠 클릭은 -3입니다. 모바일 기기에서 터치는 1이고 다중 터치 시 입력 개수만큼 증가합니다."}]

[{"index":"Vector2 TouchPoint","0":"이벤트가 발생한 스크린 좌표입니다."}]

# Constructors

[{"index":"UITouchDownEvent(Entity entity = nil, int32 touchId = 0, Vector2 touchPoint = Vector2(0, 0))","0":"지정한 값으로 UITouchDownEvent를 초기화합니다."}]
HitEffectSpawnerComponent

엔티티에 피격 이벤트가 발생했을 때 피격 이펙트를 출력합니다.

# 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":"현재 실행 환경이 서버인지 아닌지의 여부를 반환합니다."}]
UITouchEnterEvent

UI Entity를 터치하거나 커서가 들어올 때 발생하는 이벤트입니다.  
  
이 Event는 아래 API에 의해 발생합니다.

  * UITouchReceiveComponent (Space;Client)



# Properties

[{"index":"Entity Entity","0":"이벤트가 발생한 엔티티입니다."}]

[{"index":"int32 TouchId","0":"입력 값을 나타내는 식별자입니다. 마우스 좌클릭은 -1, 우클릭은 -2, 휠 클릭은 -3입니다. 모바일 기기에서 터치는 1이고 다중 터치 시 입력 개수만큼 증가합니다."}]

[{"index":"Vector2 TouchPoint","0":"이벤트가 발생한 스크린 좌표입니다."}]

# Constructors

[{"index":"UITouchEnterEvent(Entity entity = nil, int32 touchId = 0, Vector2 touchPoint = Vector2(0, 0))","0":"지정한 값으로 UITouchEnterEvent를 초기화합니다."}]