Event Execution Order

디토랜드의 이벤트 호출 순서에 관한 메뉴얼이에요.

기본 이벤트

플레이어의 입장과 퇴장 / 캐릭터의 스폰과 죽음에 관한 이벤트 호출 순서 및 상세설명이에요.

OnTeleportFinishEvent

플레이어가 해당 랜드로 이동을 완료했을 때 호출되는 이벤트예요.

OnTeleportFailedEvent

플레이어가 해당 랜드로 이동을 실패했을 때 호출되는 이벤트예요.

OnEnterPlayer

플레이어가 입장할 때 호출되는 이벤트예요.

OnSpawnCharacter

캐릭터가 스폰 될 때 호출되는 이벤트예요.

OnDeathCharacter

캐릭터가 죽을 때 호출되는 이벤트예요.

OnLeavePlayer

플레이어가 랜드에서 나갈 때 호출되는 이벤트예요.

OnTeleportFinishEvent

: 플레이어가 해당 랜드로 이동을 완료했을 때 호출되는 이벤트예요.

⇒ 🚫 랜드 이동을 하지 않았을 경우, 해당 이벤트는 호출되지 않아요.

OnTeleportFailedEvent

: 플레이어가 해당 랜드로 이동을 실패했을 때 호출되는 이벤트예요.

⇒ 🚫 랜드 이동을 하지 않았을 경우, 해당 이벤트는 호출되지 않아요.

OnEnterPlayer

: 플레이어가 입장할 때 호출되는 이벤트예요.

⇒ 📢 해당 이벤트는 플레이가 입장했을 때 한번만 호출돼요.

⇒ 💡ClientScript에서 해당 이벤트를 호출할 경우, IsMyPlayer 함수를 이용해 입장한 플레이어가 로컬 플레이어인지 확인할 수 있어요.

⇒ 🚫 캐릭터 객체에 대한 접근이 필요한 경우 OnSpawnCharacter에서 접근하는 것을 권장해요.

OnSpawnCharacter

: 캐릭터가 스폰 될 때 호출되는 이벤트예요.

⇒ 📢 해당 이벤트는 캐릭터가 스폰될 때 매번 호출돼요.

⇒ 💡ClientScript에서 해당 이벤트를 호출할 경우, IsMyCharacter 함수를 이용해 스폰한 캐릭터가 로컬 캐릭터인지 확인할 수 있어요.

OnDeathCharacter

: 캐릭터가 죽을 때 호출되는 이벤트예요.

⇒ 📢 해당 이벤트는 캐릭터가 죽을 때 매번 호출돼요.

⇒ 💡ClientScript에서 해당 이벤트를 호출할 경우, IsMyCharacter 함수를 이용해 죽은 캐릭터가 로컬 캐릭터인지 확인할 수 있어요.

OnLeavePlayer

: 플레이어가 랜드에서 나갈 때 호출되는 이벤트예요.

⇒ 📢 해당 이벤트는 플레이가 나갔을 때 한번만 호출돼요.

⇒ 💡ClientScript에서 해당 이벤트를 호출할 경우, IsMyPlayer 함수를 이용해 나간 플레이어가 로컬 플레이어인지 확인할 수 있어요.

⇒ 🚫 ClientScript에서 해당 이벤트를 호출해 캐릭터에 접근할 때는 로컬 캐릭터만 가능해요.

⇒ 🚫 해당 이벤트에 연결된 함수에서 GetAllPlayer / GetPlayerCount 함수를 사용해 남아 있는 플레이어의 값을 가져올 경우, 방금 나간 플레이어의 값을 제외해줘야 해요.

--GetAllPlayer

local function LeavePlayer(player)
    local allPlayer = Game:GetAllPlayer()

    for i = 1, #allPlayer do
        if allPlayer[i] == player then
            table.remove(allPlayer, i)
            break
    	end
    end

    print("AllPlayerCount :", #allPlayer)
end
Game.OnLeavePlayer:Connect(LeavePlayer)
--GetPlayerCount

local function LeavePlayer(player)
    local allPlayerCount = Game:GetPlayerCount() - 1

    print("AllPlayerCount :", allPlayerCount)
end
Game.OnLeavePlayer:Connect(LeavePlayer)


오브젝트 이벤트

오브젝트와 관련된 이벤트의 호출 순서 및 상세설명이에요.

OnUpdateEvent

오브젝트가 Enable 상태일 때 매프레임 호출되는 이벤트예요.

*오브젝트가 Disable 상태일 때는 호출되지 않아요.

OnEnableEvent

오브젝트가 Enable 상태로 변경됐을 때 호출되는 이벤트예요.

OnDisableEvent

오브젝트가 Disable 상태로 변경됐을 때 호출되는 이벤트예요.

OnDestroyEvent

오브젝트가 삭제될 때 호출되는 이벤트예요.

OnUpdateEvent

: 오브젝트가 Enable 상태일 때 매프레임 호출되는 이벤트예요.

⇒ 🚫 오브젝트가 Disable 상태일 때는 호출되지 않아요. ( 오브젝트.Enable = false )

OnEnableEvent

: 오브젝트가 Enable 상태로 변경됐을 때 호출되는 이벤트예요.

⇒ 📢 오브젝트의 Enable을 변경해 주었을 때 호출돼요. ( 오브젝트.Enable = true )

OnDisableEvent

: 오브젝트가 Disable 상태로 변경됐을 때 호출되는 이벤트예요.

⇒ 📢 오브젝트의 Enable을 변경해 주었을 때 호출돼요. ( 오브젝트.Enable = false )

OnDestroyEvent

: 오브젝트가 삭제될 때 호출되는 이벤트예요.

⇒ 📢 해당 이벤트는 오브젝트가 삭제되었을 때 한번만 호출돼요.




UI ( ScreenUI / SurfaceUI ) 이벤트

UI ( ScreenUI / SurfaceUI ) 와 관련된 이벤트의 호출 순서 및 상세 설명이에요.

OnUpdateEvent

UI의 상태가 Enable일 때, 매 프레임마다 호출되는 이벤트에요.

*UI의 상태가 Disable이면 호출되지 않아요.

OnVisibleEvent

UI가 보여질 때 호출되는 이벤트에요.

OnInVisibleEvent

UI가 안 보여질 때 호출되는 이벤트에요.

OnUpdateEvent

: UI ( ScreenUI / SurfaceUI ) 의 상태가 Enable일 때, 매 프레임마다 호출되는 이벤트에요.

⇒ 🚫 UI의 상태가 Disable이면 호출되지 않아요.

OnVisibleEvent

: UI ( ScreenUI / SurfaceUI ) 가 보여질 때 호출되는 이벤트에요.

⇒ 📢 UI를 보이도록 변경해 주었을 때 호출돼요.

( UI.Visible = true / UI.Enable = true )

OnInVisibleEvent

: UI ( ScreenUI / SurfaceUI ) 가 안 보여질 때 호출되는 이벤트에요.

⇒ 📢 UI를 보이지 않도록 변경해 주었을 때 호출돼요.

( UI.Visible = true / UI.Enable = true )


Enable 속성과 이벤트/함수 동작

Enable 속성은 일부 이벤트/함수 동작에 영향을 줘요.

영향을 받는 이벤트/함수는 Enable 상태일 때 동작, Disable 상태일 때는 동작하지 않아요.

🚫 Disable 상태이더라도, Lua 코드는 여전히 동작해요. ( 스크립트 로직, wait, for, while 등 )

Enable 속성에 영향을 받는 이벤트/함수

( Enable 상태 → 동작 / Disable 상태 → 동작 X )

  • OnUpdateEvent

  • OnCollisionEvent

  • OnBeginOverlapEvent

  • OnEndOverlapEvent

  • OnOverlapUpdateEvent

  • Track.PlayTransformTrack

    ⇒ Track.PlayTransformTrack 함수의 경우, Disable 상태가 되면 월드 내 움직임이 멈추고, Enable 상태가 되면 다시 움직여요.

    🚫 Disable 상태이더라도, Track의 재생이 완전히 끝나거나 정지 상태가 아니면 월드 내 움직임은 멈추지만 Track은 여전히 재생 중이에요.

Last updated