TeleportService

Entity를 특정 위치로 이동시키는 기능과 유저를 다른 월드 인스턴스로 워프시키는 기능을 제공합니다.

# Methods

[{"index":"void ClearReservation() (Server)","0":"예약된 텔레포트들을 취소합니다."}]

[{"index":"void ClearReservation(Entity messageOwnerEntity = nil) (Deprecated) (Server)","0":"더는 사용하지 않는 함수입니다. 다른 ClearReservation() 함수를 사용하세요."}]

[{"index":"WarpRecord GetWarpRecord(string userId) (ServerOnly)","0":"userId에 해당하는 유저의 워프 기록을 얻어옵니다."}]

[{"index":"boolean ReserveTeleportToEntity(Entity targetEntity, Entity destinationEntity, boolean overridePrevious = true) (Server)","0":"목적지로 설정한 Entity 위치와 동일하게 이동하는 텔레포트를 예약합니다."}]

[{"index":"boolean ReserveTeleportToEntity(Entity targetEntity, Entity destinationEntity, boolean overridePrevious = true, Entity messageOwnerEntity = nil) (Deprecated) (Server)","0":"더는 사용하지 않는 함수입니다. 다른 ReserveTeleportToEntity(Entity, Entity, boolean) 함수를 사용하세요."}]

[{"index":"boolean ReserveTeleportToMapPosition(Entity targetEntity, Vector3 destinationPosition, string destinationMapName = \"\", boolean overridePrevious = true) (Server)","0":"목적지 위치로 이동하는 텔레포트를 예약합니다."}]

[{"index":"boolean ReserveTeleportToMapPosition(Entity targetEntity, Vector3 destinationPosition, string destinationMapName = \"\", boolean overridePrevious = true, Entity messageOwnerEntity = nil) (Deprecated) (Server)","0":"더는 사용하지 않는 함수입니다. 다른 ReserveTeleportToMapPosition(Entity, Vector3, string, boolean) 함수를 사용하세요."}]

[{"index":"void TeleportReservedEntities() (Server)","0":"예약된 텔레포트들을 실행시킵니다."}]

[{"index":"void TeleportReservedEntities(Entity messageOwnerEntity = nil) (Deprecated) (Server)","0":"더는 사용하지 않는 함수입니다. 다른 TeleportReservedEntities() 함수를 사용하세요."}]

[{"index":"void TeleportToEntity(Entity targetEntity, Entity destinationEntity) (Server)","0":"목적지 Entity의 위치로 Entity를 텔레포트 시킵니다."}]

[{"index":"void TeleportToEntity(Entity targetEntity, Entity destinationEntity, Entity messageOwnerEntity = nil) (Deprecated) (Server)","0":"더는 사용하지 않는 함수입니다. 다른 TeleportToEntity(Entity, Entity) 함수를 사용하세요."}]

[{"index":"void TeleportToEntityPath(Entity targetEntity, string destinationEntityPath) (Server)","0":"목적지 Path로 Entity를 텔레포트 시킵니다."}]

[{"index":"void TeleportToEntityPath(Entity targetEntity, string destinationEntityPath, Entity messageOwnerEntity = nil) (Deprecated) (Server)","0":"더는 사용하지 않는 함수입니다. 다른 TeleportToEntityPath(Entity, string)를 사용하세요."}]

[{"index":"void TeleportToMapPosition(Entity targetEntity, Vector3 destinationPosition, string destinationMapName = \"\") (Server)","0":"목적지 위치로 Entity를 텔레포트 시킵니다."}]

[{"index":"void TeleportToMapPosition(Entity targetEntity, Vector3 destinationPosition, string destinationMapName = \"\", Entity messageOwnerEntity = nil) (Deprecated) (Server)","0":"더는 사용하지 않는 함수입니다. 다른 TeleportToMapPosition(Entity, Vector3, string) 함수를 사용하세요."}]

[{"index":"void UnReserveTeleport(Entity targetEntity) (Server)","0":"텔레포트 예약을 취소합니다."}]

[{"index":"void UnReserveTeleport(Entity targetEntity, Entity messageOwnerEntity = nil) (Deprecated) (Server)","0":"더는 사용하지 않는 함수입니다. 다른 UnReserveTeleport(Entity) 함수를 사용하세요."}]

[{"index":"boolean WarpAdminToWorldInstanceAndWait(string userId, string destinationWorldInstanceId, string warpData) (ServerOnly) (ReleaseOnly) (Yield)","0":"월드 제작 권한이 있는 크리에이터 또는 공동 제작 그룹 멤버를 다른 월드 인스턴스로 워프시키고 성공 여부를 반환합니다.출시된 월드 중 공개된 월드로만 이동이 가능합니다. 수행하는 동안 스크립트 실행을 중단합니다. 출시 환경에서만 동작하는 함수입니다. 메이커에서 실행하면 false를 반환합니다.월드 인스턴스에 빈 자리가 없어도 입장할 수 있으며, 플레이어 목록에 표시되지 않습니다. userId는 워프시킬 유저의 Id, destinationWorldInstanceId는 목적지 월드 인스턴스의 Id입니다. warpData로 전달한 데이터는 GetWarpRecord 함수로 확인할 수 있습니다."}]

[{"index":"void WarpAdminToWorldInstanceAsync(string userId, string destinationWorldInstanceId, string warpData, func callbackFunction) (ServerOnly) (ReleaseOnly)","0":"월드 제작 권한이 있는 크리에이터 또는 공동 제작 그룹 멤버를 다른 월드 인스턴스로 워프시킵니다. 출시된 월드 중 공개된 월드로만 이동이 가능합니다. 출시 환경에서만 동작하는 함수입니다. 메이커에서 실행하면 false를 반환합니다. 이 작업은 비동기로 수행되며, 작업이 완료되면 성공 여부와 함께 callbackFunction으로 전달된 함수가 호출됩니다. 월드 인스턴스에 빈 자리가 없어도 입장할 수 있으며, 플레이어 목록에 표시되지 않습니다. userId는 워프시킬 유저의 Id, destinationWorldInstanceId는 목적지 월드 인스턴스의 Id입니다. warpData로 전달한 데이터는 GetWarpRecord 함수로 확인할 수 있습니다."}]

[{"index":"boolean WarpUsersToWorldAndWait(table userIds, string destinationWorldId, string warpData) (ServerOnly) (Yield)","0":"유저들을 다른 월드로 워프시키고 성공 여부를 반환합니다. 출시된 게임 중 공개된 월드로만 이동이 가능합니다. 수행하는 동안 스크립트 실행을 중단합니다.userIds는 워프시킬 유저들의 Id, destinationWorldId는 목적지 월드의 Id입니다. warpData로 전달한 데이터는 GetWarpRecord 함수로 확인할 수 있습니다."}]

[{"index":"void WarpUsersToWorldAsync(table userIds, string destinationWorldId, string warpData, func callbackFunction) (ServerOnly)","0":"유저들을 다른 월드로 워프시킵니다. 출시된 월드 중 공개된 월드로만 이동이 가능합니다. 이 작업은 비동기로 수행되며, 작업이 완료되면 성공 여부와 함께 callbackFunction으로 전달된 함수가 호출됩니다.userIds는 워프시킬 유저들의 Id, destinationWorldId는 목적지 월드의 Id입니다. warpData로 전달한 데이터는 GetWarpRecord 함수로 확인할 수 있습니다."}]

[{"index":"boolean WarpUserToWorldAndWait(string userId, string destinationWorldId, string warpData) (ServerOnly) (Yield)","0":"유저를 다른 월드로 워프시키고 성공 여부를 반환합니다. 출시된 월드 중 공개된 월드로만 이동이 가능합니다. 수행하는 동안 스크립트 실행을 중단합니다.userId는 워프시킬 유저의 Id, destinationWorldId는 목적지 월드의 Id입니다. warpData로 전달한 데이터는 GetWarpRecord 함수로 확인할 수 있습니다."}]

[{"index":"void WarpUserToWorldAsync(string userId, string destinationWorldId, string warpData, func callbackFunction) (ServerOnly)","0":"유저를 다른 월드로 워프시킵니다. 출시된 월드 중 공개된 월드로만 이동이 가능합니다. 이 작업은 비동기로 수행되며, 작업이 완료되면 성공 여부와 함께 callbackFunction으로 전달된 함수가 호출됩니다.userId는 워프시킬 유저의 Id, destinationWorldId는 목적지 월드의 Id입니다. warpData로 전달한 데이터는 GetWarpRecord 함수로 확인할 수 있습니다."}]

[{"index":"boolean WarpUserToWorldInstanceAndWait(string userId, string destinationWorldInstanceId, string warpData) (ServerOnly) (ReleaseOnly) (Yield)","0":"유저를 다른 월드 인스턴스로 워프시키고 성공 여부를 반환합니다. 출시된 월드 중 공개된 월드로만 이동이 가능합니다. 수행하는 동안 스크립트 실행을 중단합니다.userId는 워프시킬 유저의 Id, destinationWorldInstanceId는 목적지 월드 인스턴스의 Id입니다. warpData로 전달한 데이터는 GetWarpRecord 함수로 확인할 수 있습니다.출시 환경에서만 동작하는 함수입니다. 메이커에서 실행하면 false를 반환합니다."}]

[{"index":"void WarpUserToWorldInstanceAsync(string userId, string destinationWorldInstanceId, string warpData, func callbackFunction) (ServerOnly) (ReleaseOnly)","0":"유저를 다른 월드 인스턴스로 워프시킵니다. 출시된 월드 중 공개된 월드로만 이동이 가능합니다. 이 작업은 비동기로 수행되며, 작업이 완료되면 성공 여부와 함께 callbackFunction으로 전달된 함수가 호출됩니다.userId는 워프시킬 유저의 Id, destinationWorldInstanceId는 목적지 월드 인스턴스의 Id입니다. warpData로 전달한 데이터는 GetWarpRecord 함수로 확인할 수 있습니다.출시 환경에서만 동작하는 함수입니다. 메이커에서 실행하면 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":"이벤트를 발생시킵니다."}]

# Examples

주변 몬스터를 한 곳에 몰아넣어 공격하는 스킬을 만드는 예시입니다.

`LeftShift` 키를 입력하면 미리 설정해 둔 Tag를 이용해 몬스터를 찾고, 찾은 몬스터들을 내 캐릭터가 있는 위치로 모읍니다.  
그리고 내 캐릭터는 그보다 높은 위치로 올라가 몬스터를 덮칩니다.
    
    
    @Component
    script MonsterGatherer extends Component
        @EventSender("Service", "InputService")
        handler HandleKeyDownEvent(KeyDownEvent event)
        -- Parameters
        local key = event.key
        --------------------------------------------------------
    
        if key == KeyboardKey.LeftShift then
        	local me = _UserService.LocalPlayer
        	local currentMapName = me.CurrentMapName
        	local currentPosition = me.TransformComponent.Position
        	local allMonsters = _EntityService:GetEntitiesByTag("Monster")
    
        	for i = 1, #allMonsters do
        		_TeleportService:TeleportToEntity(allMonsters[i], me)
        	end
    
        	_TeleportService:TeleportToMapPosition(me, currentPosition + Vector3(0, 2, 0), currentMapName)
        end
        end
    end
    

# SeeAlso

  * TransformComponent
  * KeyDownEvent
  * EntityService
  * UserService
  * [월드 워프하기](/docs?postId=743)
  * [텔레포트](/docs?postId=59)
  * [특정 월드 인스턴스로 워프하기](/docs?postId=1122)