UILogic

UI 관련 기능을 제공합니다.

# Properties

[{"index":"int32 ScreenHeight (ReadOnly)","0":"현재 화면의 높이를 나타냅니다."}]

[{"index":"int32 ScreenWidth (ReadOnly)","0":"현재 화면의 너비를 나타냅니다."}]

# Methods

[{"index":"int32 GetSiblingIndex(UITransformComponent target) (ClientOnly)","0":"플레이 시 부모가 같은 자식 TransformComponent들의 순서를 조회합니다."}]

[{"index":"Vector2 LocalUIToWorldPosition(Vector2 localUIPosition, UITransformComponent uiTransformComponent) (ClientOnly)","0":"UITransformComponent의 pivot 기준 UI 좌표를 World 좌표로 변환합니다. UIMode가 World인 UITransformComponent는 사용할 수 없습니다."}]

[{"index":"Vector2 ScreenToLocalUIPosition(Vector2 screenPosition, UITransformComponent uiTransformComponent) (ClientOnly)","0":"Screen 좌표를 UITransformComponent의 pivot 기준 UI 좌표로 변환합니다. UIMode가 World인 UITransformComponent는 사용할 수 없습니다."}]

[{"index":"Vector2 ScreenToUIPosition(Vector2 screenPosition) (ClientOnly)","0":"Screen 좌표를 UI 좌표로 변환합니다. UI 좌표의 원점은 최상위 UI의 pivot(Middle Center)입니다."}]

[{"index":"Vector2 ScreenToWorldPosition(Vector2 screenPosition) (ClientOnly)","0":"Screen 좌표를 World 좌표로 변환합니다."}]

[{"index":"void SetSiblingIndex(UITransformComponent target, int32 index) (ClientOnly)","0":"플레이 시 부모가 같은 자식 UITransformComponent들의 순서를 변경합니다."}]

[{"index":"Vector2 UIToWorldPosition(Vector2 uiPosition) (ClientOnly)","0":"UI 좌표를 World 좌표로 변환합니다. UI 좌표의 원점은 최상위 UI의 pivot(Middle Center)입니다."}]

[{"index":"Vector2 WorldToScreenPosition(Vector2 worldPosition) (ClientOnly)","0":"World 좌표를 Screen 좌표로 변환합니다."}]

##### inherited from Logic:

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

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

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

# Examples

#### ScreenToWorldPosition

터치한 화면 위치로 자신의 캐릭터를 텔레포트 시키는 예제입니다.
    
    
    @Component
    script ScreenTouchTeleporter extends Component
        @EventSender("Service", "InputService")
        handler HandleScreenTouchEvent(ScreenTouchEvent event)
        -- Parameters
        local TouchPoint = event.TouchPoint
        --------------------------------------------------------
    
        local worldPosition = _UILogic:ScreenToWorldPosition(TouchPoint)
        local me = _UserService.LocalPlayer
        local currentMapName = me.CurrentMapName
        local destinationPosition = Vector3(worldPosition.x, worldPosition.y, 0)
    
        _TeleportService:TeleportToMapPosition(me, destinationPosition, currentMapName)
        end
    end
    

#### ScreenToUIPosition

특정 UI 엔티티를 터치한 위치로 이동시키는 예제입니다. UI 엔티티의 Anchor Preset은 Middle Center이고, UI 엔티티는 Safe Area의 자식입니다.
    
    
    @Component
    script UITouchFollower extends Component
        property any followingUI = nil
    
        @ExecSpace("ClientOnly")
        method void OnBeginPlay()
        self.followingUI = _EntityService:GetEntityByPath("/ui/UIGroup/UIEmpty").UITransformComponent
        end
    
        @EventSender("Service", "InputService")
        handler HandleScreenTouchEvent(ScreenTouchEvent event)
        --------------- Native Event Sender Info ----------------
        -- Sender: InputService
        -- Space: Client
        ---------------------------------------------------------
    
        -- Parameters
        -- local TouchId = event.TouchId
        local TouchPoint = event.TouchPoint
        ---------------------------------------------------------
    
        self.followingUI.anchoredPosition = _UILogic:ScreenToUIPosition(TouchPoint)
        end
    end
    

# SeeAlso

  * ScreenTouchEvent
  * Vector3
  * TeleportService
  * UserService