RectTileMapComponent

사각형 타일맵 기능을 제공합니다.

# Properties

[{"index":"Vector2 GridSize (Sync)","0":"격자의 크기입니다."}]

[{"index":"boolean IgnoreMapLayerCheck","0":"SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다."}]

[{"index":"boolean IsOddGridPosition","0":"타일맵을 그리드의 기준점과 어긋나게 배치합니다."}]

[{"index":"int32 OrderInLayer (Sync)","0":"같은 Layer 내의 우선순위를 결정합니다. 수가 클수록 앞에 보입니다."}]

[{"index":"boolean PhysicsInteractable (ReadOnly)","0":"true일 경우 Physics 기능을 사용하는 Dynamic 강체(PhysicRigidbody)와 충돌할 수 있습니다."}]

[{"index":"string SortingLayer (ReadOnly)","0":"2개 이상의 Entity가 겹쳤을 때 Sorting Layer에 따라 보이는 우선순위가 결정됩니다."}]

[{"index":"int32 TileCount (ReadOnly) (HideFromInspector)","0":"현재 배치되어 있는 타일의 총 개수입니다."}]

[{"index":"string TileSetRUID (Sync)","0":"타일셋의 RUID입니다."}]

##### 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

[{"index":"void BoxFill(int32 tileIndex, Vector2Int from, Vector2Int to)","0":"from부터 to까지의 사각형 영역에 타일을 배치합니다. tileIndex는 타일의 인덱스 번호입니다."}]

[{"index":"void BoxFill(string tileName, Vector2Int from, Vector2Int to)","0":"from부터 to까지의 사각형 영역에 타일을 배치합니다. tileName은 타일의 Name 프로퍼티입니다."}]

[{"index":"void BoxRemove(Vector2Int from, Vector2Int to)","0":"from부터 to까지의 사각형 영역의 타일을 제거합니다."}]

[{"index":"void Clear()","0":"타일들을 모두 제거합니다."}]

[{"index":"List GetAllTilePositions()","0":"현재 타일맵에 존재하는 모든 타일들의 위치 리스트를 반환합니다."}]

[{"index":"RectTileInfo GetTile(int32 cellPositionX, int32 cellPositionY)","0":"해당 위치에 있는 타일의 정보를 반환합니다."}]

[{"index":"RectTileInfo GetTile(Vector2Int cellPosition)","0":"해당 위치에 있는 타일의 정보를 반환합니다."}]

[{"index":"void RemoveTile(int32 cellPositionX, int32 cellPositionY)","0":"해당 위치의 타일을 제거합니다."}]

[{"index":"void RemoveTile(Vector2Int cellPosition)","0":"해당 위치의 타일을 제거합니다."}]

[{"index":"void Reset()","0":"타일맵을 초기 상태로 되돌립니다."}]

[{"index":"void SetTile(int32 tileIndex, int32 cellPositionX, int32 cellPositionY)","0":"해당 위치에 타일을 배치합니다. tileIndex는 타일의 인덱스 번호입니다."}]

[{"index":"void SetTile(int32 tileIndex, Vector2Int cellPosition)","0":"해당 위치에 타일을 배치합니다. tileIndex는 타일의 인덱스 번호입니다."}]

[{"index":"void SetTile(string tileName, int32 cellPositionX, int32 cellPositionY)","0":"해당 위치에 타일을 배치합니다. tileName은 타일의 Name 프로퍼티입니다."}]

[{"index":"void SetTile(string tileName, Vector2Int cellPosition)","0":"해당 위치에 타일을 배치합니다. tileName은 타일의 Name 프로퍼티입니다."}]

[{"index":"Vector2Int ToCellPosition(float worldPositionX, float worldPositionY)","0":"실수형 월드 공간 좌표를 정수형 타일맵 공간 좌표로 변환합니다."}]

[{"index":"Vector2Int ToCellPosition(Vector3 worldPosition)","0":"실수형 월드 공간 좌표를 정수형 타일맵 공간 좌표로 변환합니다."}]

[{"index":"Vector3 ToWorldPosition(int32 cellPositionX, int32 cellPositionY)","0":"정수형 타일맵 공간 좌표를 실수형 월드 공간 좌표로 변환합니다."}]

[{"index":"Vector3 ToWorldPosition(Vector2Int cellPosition)","0":"정수형 타일맵 공간 좌표를 실수형 월드 공간 좌표로 변환합니다."}]

##### inherited from Component:

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

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

# Events

[{"index":"OrderInLayerChangedEvent","0":"Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다."}]

# Examples

밟고 있는 타일에 따라 이동 속력이 바뀌는 예제입니다.
    
    
    @Component
    script TileSpeedModifier extends Component
        @ExecSpace("ClientOnly")
        method void OnUpdate()
        if _UserService.LocalPlayer ~= self.Entity then
        	return
        end
    
        local transform = self.Entity.TransformComponent
        local movement = self.Entity.MovementComponent
        local tilemap = self.Entity.CurrentMap:GetFirstChildComponentByTypeName("RectTileMapComponent")
    
        local worldPos = transform.WorldPosition
    
        -- 월드 공간 좌표를 타일맵 공간 좌표로 변환
        local cellPos = tilemap:ToCellPosition(worldPos)
    
        -- 현재 위치에 있는 타일 정보 조회
        local tileInfo = tilemap:GetTile(cellPos)
    
        if tileInfo == nil then
        	return
        end
    
        if (tileInfo.Name == "Fast Tile") then
        	movement.InputSpeed = 2.4
        elseif (tileInfo.Name == "Slow Tile") then
        	movement.InputSpeed = 1.2
        end
        end
    end
    

# SeeAlso

  * MovementComponent
  * TransformComponent
  * UserService
  * [RectTileMap의 활용](/docs?postId=589)
  * [SideViewRectTile모드로 맵 만들기](/docs?postId=758)