:DitoLand
Studio ManualAPI ReferenceVideo TutorialSample
  • DitoLand Developer
  • 📚Glossary
  • 🥳EVENT
    • 2024 메타버스 개발자 경진대회
    • 🎊[종료] 🖥 전남관광메타버스 스탬프 투어 인증 이벤트
  • Notice
    • 약관 개정(2024.06.17)
    • 약관 개정 (2024.03.04)
    • 약관 개정 (2023.08.25)
    • 약관 개정 (2022.12.14)
  • Manual
    • Studio
    • Resources
    • Studio Workflow Tips
    • NPC
    • NavMeshVolume
    • Land Teleport
    • Enterprise Account
    • Enterprise Studio Manual
    • Coroutine
    • AddTimeEvent
    • SaveUserData
    • Set Object Parameter
    • Toolbox Upload
    • Debugging (Breakpoint)
    • Gun Toy
    • Coupon / Event Key
    • Optimization
    • AI FSM
    • SpreadSheet
    • Mod Kit
    • AddReplicateValue / ConnectChangeEventFunction
    • Event Execution Order
    • WorldTree Search Filter
    • Object
    • Coordinate
    • Inworld Product
    • Management UserData & Leaderboard
    • Channel
    • World Event
    • Matchmaking
    • Collecting Game Logs
    • External Avatar
  • Coding Style
  • API Reference
    • Global
      • Variables
    • Lua
      • Built-in
      • NotSupport
    • Enums
      • AttachPoint
      • Bone
      • CharacterType
      • ChatCategoryType
      • ChatVisibleType
      • CollisionResponse
      • ControlMode
      • DivideTeamType
      • EventKeyState
      • InputMode
      • InventoryState
      • Key
      • KeyInputType
      • LuckyDrawOrderState
      • MaterialType
      • MediaStateType
      • ModeAnimStateType
      • ObjectSelectType
      • ObjectType
      • PathFollowingStatus
      • PointSpawnType
      • ProgressFillType
      • ProjectionType
      • QuickSlotState
      • ReplicateType
      • ScrollOrientationType
      • SimulatePhysicsType
      • SpawnType
      • TeamType
      • TeleportErrorType
      • TouchType
      • TransformPlayType
      • UIDisplayType
      • UIWidgetType
      • WidgetAnchorType
    • Common
      • BindEvent
      • Character
      • Collision
      • Color
      • CouponReturnData
      • DateTime
      • Environment
      • EventKeyReturnData
      • FactorPhysics
      • FiniteState
      • FiniteStateMachine
      • Game
      • GameStatisticsData
      • HitResult
      • Item
      • LandTransferData
      • Matrix
      • MouseHitResult
      • Object
      • Physics
      • ScriptPhase
      • TimeEvent
      • Track
      • Vector
      • WorldObject
    • Client
      • AnimStateBase
      • AnimStateMachine
      • AnimStateMachineSetting
      • BlendAnimationDataSetting
      • BlendAnimState
      • BlendAnimStateSetting
      • Button
      • Camera
      • CameraClient
      • Character
      • CharacterAnimationSetting
      • CharacterAppearanceSetting
      • CharacterBaseSetting
      • CharacterClient
      • CharacterSetting
      • Collider
      • Collision
      • DPad
      • Environment
      • FiniteStateMachine
      • Frame
      • FX
      • Game
      • GridBox
      • HyperLinkButton
      • Image
      • Input
      • InputGroup
      • InventoryBox
      • Item
      • ListView
      • LocalPlayer
      • Media
      • MediaView
      • NPC
      • ObjectGroup
      • ObjectNoneClient
      • PDFView
      • Physics
      • PointLight
      • ProgressBar
      • RemotePlayer
      • ScreenButton
      • ScreenUI
      • Script
      • ScrollBox
      • SequenceAnimState
      • SequenceAnimStateSetting
      • Sound
      • SpotLight
      • StaticMesh
      • SurfaceUI
      • Text
      • TextBox
      • UIScene
      • WebBrowser
      • WebForum
      • WidgetBase
      • YouTubeView
    • Server
      • Character
      • CharacterAnimationSetting
      • CharacterAppearanceSetting
      • CharacterBaseSetting
      • CharacterServer
      • CharacterSetting
      • Collider
      • Collision
      • Environment
      • FactorPhysics
      • FiniteStateMachine
      • FX
      • Game
      • Item
      • Media
      • NPC
      • Physics
      • Player
      • PointLight
      • Script
      • ScriptObjectGroup
      • ScriptObjectNoneServer
      • Sound
      • Spawner
      • SpawnPoint
      • SpawnPointGroup
      • SpotLight
      • StaticMesh
      • Team
      • UIScene
      • Widget
  • Tutorial
    • Script Tutorial
      • 스크립트 심화 강좌
        • 1. 스크립트의 종류, 호출 순서, 호출, 통신
        • 2. 동기화, 파라미터, 예외사항
        • 3. 디토랜드로 루아 활용하기
  • Sample
    • Scripting
    • Event
    • Collision & Physics
    • Transform
    • UI
    • Camera
    • Input
    • FX
    • Sound
  • Guide for Developers
    • Guide For Unity Developer
    • Guide For Roblox Developer
  • Release Note
    • Script Changes
      • 1.5.0 Map Changes
      • 1.2.0 Map Changes
      • 1.1.0 Map Changes
      • 1.0.0 Map Changes
      • 0.9.0 Map Changes
      • 0.7.0 Map Changes
      • 0.6.0 Map Changes
      • 0.5.0 Map Changes
      • 0.4.0 Map Changes
      • 0.3.0 Map Changes
      • 0.2.0 Map Changes
    • Known Issues
Powered by GitBook
On this page
  • 기존 맵 파일 최신화 방법
  • 스크립트 변경 사항

Was this helpful?

  1. Release Note
  2. Script Changes

1.5.0 Map Changes

PreviousScript ChangesNext1.2.0 Map Changes

Last updated 10 months ago

Was this helpful?

기존 맵 파일 최신화 방법

  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)