UtilLogic

다양한 유틸리티를 제공합니다.

# Properties

[{"index":"number ElapsedSeconds","0":"현재 월드가 초기화된 이후 흐른 시간을 초 단위로 반환합니다. 서버는 월드가 생성된 시점 이후, 클라이언트는 접속한 시점 이후를 기준으로 시간이 흐른 값입니다."}]

[{"index":"number ServerElapsedSeconds","0":"서버에서 월드가 생성된 시점 이후 시간이 흐른 값입니다."}]

# Methods

[{"index":"table ConcaveHull(table points, float concavity, float samplingWeight)","0":"points 전체를 감싸는 오목 다각형을 구한 뒤, 다각형을 구성하는 점들을 반환합니다. 반환되는 점들은 연결 순서에 따라 정렬되어 있습니다. concavity는 다각형의 오목한 정도를 나타내며, 0부터 1 사이의 값을 사용할 수 있습니다. samplingWeight는 값이 클수록 더 많은 점들이 선택되어 다각형이 만들어집니다. 0 이상의 값을 사용할 수 있으며, 일반적으로 1에서 1.2 사이의 값을 권장합니다."}]

[{"index":"boolean Contains(string origin, string targetString)","0":"origin 문장에 targetString이 포함되어 있는지 확인합니다."}]

[{"index":"table ConvexHull(table points)","0":"points 전체를 감싸는 볼록 다각형을 구한 뒤, 다각형을 구성하는 점들을 반환합니다. 반환되는 점들은 연결 순서에 따라 정렬되어 있습니다."}]

[{"index":"DateTime GetLocalTimeFrom(DateTime dateTime) (ClientOnly)","0":"dateTime을 바탕으로 LocalDateTime을 생성해 반환합니다."}]

[{"index":"table> GetSpriteEdgePoints(Sprite sprite) (ClientOnly) (Yield)","0":"스프라이트의 테두리를 구한 뒤, 테두리를 구성하는 점들을 반환합니다. 반환되는 점들은 연결 순서에 따라 정렬되어 있습니다. 테두리는 한 개 또는 여러 개가 될 수 있습니다."}]

[{"index":"string GetUTCNow() (Deprecated)","0":"더는 사용하지 않는 함수입니다. DateTime의 UtcNow 프로퍼티를 사용하세요."}]

[{"index":"string Insert(string origin, int32 insertIndex, string otherString)","0":"origin 문장의 insertIndex 위치에 otherString을 추가합니다."}]

[{"index":"boolean IsNilorEmptyString(string origin)","0":"origin 문자열이 nil이거나 빈 문자열인지를 판단합니다."}]

[{"index":"string NewGuid()","0":"새로운 GUID를 생성해 반환합니다. GUID는 하이픈이 없는 32자리 16진수 문자열로 생성됩니다."}]

[{"index":"number RandomDouble()","0":"0.0부터 1.0 전까지의 임의의 실수를 반환합니다. 1.0은 포함되지 않습니다."}]

[{"index":"int32 RandomInteger()","0":"음수가 아닌 임의의 정수를 반환합니다. 2147483647 전까지의 정수를 사용합니다."}]

[{"index":"int32 RandomIntegerRange(int32 min, int32 max)","0":"범위 내의 임의의 정수를 반환합니다. min 값과 max 값이 범위에 포함됩니다."}]

[{"index":"string Remove(string origin, string targetString)","0":"origin 문장에서 targetString을 찾아서 가장 먼저 발견한 대상을 삭제합니다."}]

[{"index":"string Replace(string origin, string targetString, string newString)","0":"origin 문장에서 targetString을 찾아서 newString으로 교체합니다."}]

[{"index":"void SetClientTimeScale(float timeScale) (ClientOnly)","0":"클라이언트의 게임 시간이 흘러가는 속도를 조절합니다.기본값은 1입니다. 0 이상, 100이하의 값을 설정할 수 있습니다. 룸을 이동할 경우 기본값으로 초기화됩니다.timeScale은 OnUpdate()를 통해 전달되는 deltaTime 값을 변경합니다. 클라이언트의 실제 실행 속도를 변경하거나, 영향을 주지 않습니다. 예를 들어, timeSclae의 값이 2라면 게임 시간이 두 배 빠르게 흐르고, 값이 0.5라면 두 배 느리게 흐릅니다. 만약 값이 0이면 월드 시간이 멈춥니다."}]

[{"index":"table Split(string origin, string separator = \"\", boolean useSeparatorAsOne = true)","0":"origin 문장을 separator를 기준으로 분할합니다."}]

[{"index":"table StringToTable(string str)","0":"string을 Table 형식으로 변환합니다."}]

[{"index":"void StringToTable(table table, string str)","0":"string을 Table 형식으로 변환합니다."}]

[{"index":"string SubString(string origin, int32 startIndex, int32 length = 0)","0":"origin 문장의 startIndex부터 반환합니다."}]

[{"index":"string TableToString(table table)","0":"Table을 string 형식으로 변환합니다."}]

[{"index":"string Trim(string origin, string trimString = \"\")","0":"trimString에 포함된 문자를 앞\/뒤에서 제거합니다."}]

[{"index":"string TrimEnd(string origin, string trimString = \"\")","0":"trimString에 포함된 문자를 뒤에서 제거합니다."}]

[{"index":"string TrimStart(string origin, string trimString = \"\")","0":"trimString에 포함된 문자를 앞에서 제거합니다."}]

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

다음 예시 코드는 각 함수의 반환 값을 보여줍니다.
    
    
    @Component
    script UtilityDemo extends Component
        @ExecSpace("ClientOnly")
        method void OnBeginPlay()
        local utc = _UtilLogic:GetUTCNow()
        log("GetUTCNow : " .. tostring(utc))                                   -- MM/dd/yyyy HH:mm:ss.fff
    
        local randomInteger = _UtilLogic:RandomInteger()
        log("RandomInteger : " .. tostring(randomInteger))                     -- 0 ~ 2147483646
    
        local randomIntegerRange = _UtilLogic:RandomIntegerRange(1, 5)
        log("RandomIntegerRange : " .. tostring(randomIntegerRange))           -- 1 ~ 5
    
        local randomDouble = _UtilLogic:RandomDouble()
        log("RandomDouble : " ..  tostring(randomDouble))                      -- 0.0 ~ 1.0
    
        local empty = _UtilLogic:IsNilorEmptyString("")
        log("IsNilorEmptyString : " .. tostring(empty))                        -- true
    
        local trim = _UtilLogic:Trim("[testString]", "[]")
        log("Trim : " .. tostring(trim))                                       -- testString
    
        local trimStart = _UtilLogic:TrimStart("[testString]", "[]")
        log("TrimStart : " .. tostring(trimStart))                             -- testString]
    
        local trimEnd = _UtilLogic:TrimEnd("[testString]", "[]")
        log("TrimEnd : " .. tostring(trimEnd))                                 -- [testString
    
        local replace = _UtilLogic:Replace("@!testString@!", "@!", "*")
        log("Replace : " .. tostring(replace))                                 -- *testString*
    
        local contains = _UtilLogic:Contains("abcdefg", "bcd")
        log("Contains : " .. tostring(contains))                               -- true
    
        local split = _UtilLogic:Split("1,2,3,4,5", ",")
        log("#Split : " .. tostring(#split))                                   -- 5
    
        local subString = _UtilLogic:SubString("abcdefg", 1, 3)
        log("SubString : " .. tostring(subString))                             -- abc
    
        local insert = _UtilLogic:Insert("abcde", 2, "123")
        log("Insert : " .. tostring(insert))                                   -- a123bcde
    
        local table1 = { "first", "second" }
        local tableToString = _UtilLogic:TableToString(table1)
        log("TableToString : " .. tostring(tableToString))                    
        --[[ Int64    1    String    first
             Int64    2    String    second --]]
    
        local table2 = _UtilLogic:StringToTable(tableToString)
        for i = 1, #table2 do
        	log(table2[i])
        end
        -- first
        -- second
        end
    end
    

기본 제공 스크립트인 PlayerAttack 스크립트는 RandomDouble() 함수를 사용해 일정 확률로 크리티컬 공격을 발동시킵니다.
    
    
    @Component
    script CriticalHitDeterminer extends Component
        method boolean CalcCritical(Entity attacker, Entity defender, string attackInfo)
        return _UtilLogic:RandomDouble() < 0.3
        end
    end
    

# SeeAlso

  * global