1.5.0 Map Changes

기존 맵 파일 최신화 방법

  1. 스튜디오를 실행하고 Blank 맵을 생성해주세요.

  2. Blank 맵에서 아래 객체들을 선택한 뒤, 복사해주세요. ( Ctrl + C )

    • DefaultInput 스크립트

    • DefaultSelfCam 스크립트

    • TouchUI

  3. 이전 버전에서 작업했던 맵 파일을 열어주세요.

  4. Blank 맵에서 복사한 객체들을 붙여넣기 해주세요. ( Ctrl + V )

  5. 기존에 있던 DefaultInput / DefaultSelfCam 스크립트를 확인 후, 새로 붙여넣기 한 스크립트에 옮겨야 하는 부분이 있다면 적용해주세요.

  6. 모두 적용했다면, 기존에 있던 스크립트를 삭제해주세요.

  7. 새로 붙여넣기 한 스크립트의 위치를 아래와 같이 수정해주세요.

  8. 테스트 플레이를 실행해서, 오류가 발생하지 않는지 확인해주세요.


스크립트 변경 사항

✨ 모바일 위젯을 추가할 수 있는 TouchUI 가 추가되었어요! 기존 모바일 위젯처럼, PC 에서는 보이지 않고 모바일 기기에서만 보이는 UI 에요.

ScreenUI 처럼,

  • UI 에디터에서 위치를 조정하고,

  • 위젯에 원하는 텍스쳐를 입히고,

  • 스크립트에서 위젯 속성을 변경할 수도 있어요.

하단에서

❗ 더 이상 동작하지 않게 된 함수들과 🧷 모바일 위젯에 이벤트를 바인딩하는 방법을 참고해주세요.

❗ 기존에 모바일 용 위젯을 다루던 함수들이 동작하지 않게 되었어요.

  • Input:SetJoystickControlVisibility(…) 함수는 더 이상 동작하지 않아요.

    대신, TouchUI 에 원하는 위젯을 추가한 후 Visible 속성을 변경해주세요.

    1. 기존

      Input:SetJoystickControlVisibility(0, false) --모바일 조이스틱을 활성화해요.
      Input:SetJoystickControlVisibility(1, false) --모바일 버튼 1을 활성화해요.

    2. 변경

      ① TouchUI 에 모바일 위젯을 추가해요.

      ② 각 모바일 위젯의 프로퍼티에서 Visible 속성을 변경하거나

      ③ 스크립트에서 모바일 위젯의 Visible 속성에 접근할 수 있어요.

      local TouchUI = Workspace.TouchUI
      local TouchPad = TouchUI.TouchPad
      local TouchButton = TouchUI.TouchButton 
      
      TouchPad.Visible = false    --모바일 터치패드를 활성화해요.
      TouchButton.Visible = false --모바일 터치버튼을 활성화해요.

  • Input:SetPadCenter(…) / Input:SetPadCenterX(…) / Input:SetPadCenterY(…) 함수는 더 이상 동작하지 않아요.

    대신, TouchUI 에 원하는 위젯을 추가한 후 UI 에디터 에서 위젯의 위치를 조정하거나, UIPosition 속성을 변경해주세요.

    1. 기존

      Input:SetPadCenter(0, 160, -100) --모바일 조이스틱의 위치를 조정해요.
      Input:SetPadCenter(1, -50, -85)  --모바일 버튼 1의 위치를 조정해요.
      
      Input:SetPadCenterX(1, -50) --모바일 버튼 1의 X 위치를 조정해요.
      Input:SetPadCenterY(1, -85) --모바일 버튼 1의 Y 위치를 조정해요.

    2. 변경

      ① TouchUI 에 모바일 위젯을 추가해요.

      ② UI 에디터에서 모바일 위젯의 위치를 조정해요.

      ③ 원하는 경우, 스크립트에서 모바일 위젯의 UIPosition 속성에 접근해서 변경해요.

      local TouchUI = Workspace.TouchUI
      local TouchPad = TouchUI.TouchPad
      local TouchButton = TouchUI.TouchButton 
      
      TouchPad.UIPosition = Vector.new(160, -100, 0)   --모바일 터치패드 위치를 조정해요. 
      TouchButton.UIPosition = Vector.new(-50, -85, 0) --모바일 터치버튼 위치를 조정해요.

  • ProcessTouchAxisEvent / ProcessTouchActionEvent 함수는 이제 동작하지 않아요.

    ProcessTouchActionEvent 에 인자로 추가되는 TouchType Enum 도 이제 동작하지 않아요.

    다음과 같이 수정해주세요. ✍

    기존 함수변경 필요

    Input:ProcessTouchAxisEvent(…)

    Input:ProcessInputAxisEvent(…)

    Input:ProcessTouchActionEvent (””, Enum.TouchType.___, …)

    Input:ProcessInputActionEvent (””, Enum.KeyInputType.___, …)

  • Enum.Key.Touch_DpadY / Enum.Key.Touch_DpadX / Enum.Key.GamePad_Button1~7

    이제 동작하지 않아요.

    DefaultInput:AddAxisKeyEvent("MoveForward_M", Enum.Key.Touch_DpadY, 1)
    DefaultInput:AddAxisKeyEvent("MoveRight_M", Enum.Key.Touch_DpadX, 1)
    DefaultInput:AddActionKeyEvent("Jump", Enum.Key.GamePad_Button1)

    모바일 위젯의 경우, AddAxisKeyEvent / AddActionKeyEvent 인자에

    기존 Enum 대신에 모바일 위젯을 직접 할당하도록 변경되었어요.

    👉 자세한 내용은 바로 하단 내용을 참고해주세요.

🧷 모바일 위젯에 다음과 같이 이벤트를 바인딩할 수 있어요.

모바일 위젯은, 키보드 키 이벤트와 같은 방식으로 이벤트를 바인딩해요.

기존에는 AddAxisKeyEvent / AddActionKeyEvent 함수 두번째 인자에 Key Enum 만 할당이 가능했는데, → TouchUI 모바일 위젯도 할당이 가능하도록 변경되었어요.

local TouchUI = Workspace.TouchUI
local TouchPad = TouchUI.TouchPad
local TouchButton = TouchUI.TouchButton

DefaultInput:AddAxisKeyEvent("MoveForward", TouchPad.AxisY, 1) 
DefaultInput:AddAxisKeyEvent("MoveRight", TouchPad.AxisX, 1) 
DefaultInput:AddActionKeyEvent("Jump", TouchButton)

자세한 사항은 아래 내용을 참고해주세요. 혹은 기본으로 제공하고 있는 DefaultInput 스크립트를 참고해주세요.

  1. TouchUI 에 모바일 위젯을 추가해요.

  2. ClientScript 에서 다음과 같이 이벤트를 정의할 수 있어요.

    --1. 조작키 그룹을 추가해요.
    DefaultInput = Input:AddGroup("DefaultInput")
    
    --2. 조작키 이벤트를 등록해요.
    local TouchUI = Workspace.TouchUI
    local TouchPad = TouchUI.TouchPad
    local TouchButton = TouchUI.TouchButton
    
    DefaultInput:AddAxisKeyEvent("MoveForward", TouchPad.AxisY, 1) --TouchPad 위젯의 InputAxisY에 설정한 키에 이벤트를 연결해요.
    DefaultInput:AddAxisKeyEvent("MoveRight", TouchPad.AxisX, 1) --TouchPad 위젯의 InputAxisX에 설정한 키에 이벤트를 연결해요.
    DefaultInput:AddActionKeyEvent("Jump", TouchButton) --TouchButton 위젯의 InputButton에 설정한 키에 이벤트를 연결해요.
    
    --3. 조작키 그룹을 활성화해요.
    Input:ActiveGroup("DefaultInput")
    
    --4. 조작이 발생했을때 실행할 이벤트를 정의해요.
    DefaultInput:ProcessInputAxisEvent("MoveForward", function(value) 
       LocalPlayer:MoveForward(value)
    end)
    
    DefaultInput:ProcessInputAxisEvent("MoveRight", function(value) 
       LocalPlayer:MoveRight(value)
    end)
    
    DefaultInput:ProcessInputActionEvent("Jump", Enum.KeyInputType.Pressed, function()
        LocalPlayer:Jump()
    end)

Last updated