: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
  • 중단점을 이용한 디버깅
  • 중단점을 추가하는 방법
  • 중단점을 테스트하는 방법
  • 중단점에서 변수 정보를 확인하는 방법
  • Breakpoint 탭
  • CallStack 탭
  • Watch 탭
  • Auto 탭
  • 중단점에서 사용할 수 있는 단축키
  • 중단점 사용 시, 유의 사항

Was this helpful?

  1. Manual

Debugging (Breakpoint)

중단점을 사용하는 방법이에요.

PreviousToolbox UploadNextGun Toy

Last updated 2 years ago

Was this helpful?

중단점을 이용한 디버깅

중단점은 테스트 혹은 디버깅을 할 때 활용할 수 있는 기능이에요. 🔍

확인이 필요한 스크립트 로직에 중단점을 추가하면, 플레이 도중에 해당 로직에 멈춘 상태에서 관련된 값들을 확인해볼 수 있어요.

중단점의 자세한 활용 방법은 아래 내용을 확인해주세요. 😉

중단점을 추가하는 방법

Script Editor에서 원하는 라인의 왼쪽 공간을 클릭하면, 중단점🔴 을 추가할 수 있어요.

  • 중단점 추가/삭제 단축키 : Pause/Break

중단점을 추가할 때는 다음 사항에 유의해주세요.

  • 스크립트의 첫 번째 라인에는 중단점을 추가할 수 없어요. 😣

  • 내용 없이 비어있는 라인에는 중단점을 추가할 수 없어요. 🤔

  • 중단점과 같은 라인에 있는 코드는, 중단된 시점에서 아직 처리되지 않은 상태라는 것을 기억해주세요. 💭

중단점을 테스트하는 방법

중단점을 추가한 상태에서, 테스트 플레이를 시작해볼게요. ▶️

플레이를 진행하던 도중, 중단점에 해당하는 라인에 도달하면 테스트 플레이가 멈춰요. ⏸️

오브젝트의 Collision을 처리하는 함수 내부에 중단점을 추가했다면, 캐릭터가 Collision에 닿았을 때 플레이가 멈추게 돼요.

중단점에서 변수 정보를 확인하는 방법

중단점이 추가된 라인에 포함된 함수 혹은 코드들은 스택이라고 해요.

현재 멈춰있는 스택에 대한 정보는, Player Output과 Script Editor에서 확인할 수 있어요. 👁️

Breakpoint 탭

추가한 중단점들을 한눈에 확인할 수 있는 탭이에요.

왼쪽 체크 박스☑를 클릭하면, 해당하는 중단점을 사용할지 말지 결정할 수 있어요.

Script Editor에 있는 Breakpoint 탭에서는 원하는 리스트를 더블 클릭🖱️하면, 해당 중단점이 있는 라인으로 이동할 수 있어요.

CallStack 탭

중단점에 도달했을 때, 어떤 스크립트 및 몇 번째 라인의 중단점인지 확인✅할 수 있는 탭이에요.

함수 내부에 있는 라인에서 중단된 경우, 해당 함수의 이름과 함수가 호출된 라인도 표시해요.

Watch 탭

중단점에 도달했을 때, 값을 확인하고 싶은 변수를 추가할 수 있는 탭이에요.

Local 및 Global로 선언된 변수, Player나 Cube 같은 객체에 저장된 변수를 추적할 수 있어요.

추적하고 싶은 변수 이름을 작성 ✏️한 후에, Add 버튼을 클릭하면 추가할 수 있어요.

해당 변수에 아직 처리된 정보가 없다면, 회색🤍으로 표시해요.

Watch 및 Auto 탭에 붉은색❤으로 표시되는 값은, 해당 중단점에서 변경된 값임을 의미해요.

Auto 탭

중단점에 도달했을 때, 현재 스택에 있는 변수를 자동으로 표시해주는 탭이에요. 🖨️

변수 이름(Name)과 해당 변수에 저장된 값(Value), 그리고 자료형(Type)을 확인할 수 있어요. 👀

월드 트리에 있는 객체를 변수에 저장했다면, 저장된 변수 이름과 객체의 실제 이름을 같이 표시해요.

스크립트에 Table 변수를 추가했다면, Auto 탭에서 해당 Table의 속성을 확인할 수 있어요. 아래에서 Table의 속성이 어떻게 출력되는지 참고해주세요. 😊

비어 있는 Table의 경우에는, 다음과 같이 출력해요.

Table 내부에 값이 있을 경우, 다음과 같이 출력해요.

Table 변수에 Key와 Value 형태로 저장된 경우, 다음과 같이 출력해요.

중단점에서 사용할 수 있는 단축키

현재 중단되어 있는 스택의 정보를 충분히 확인했다면, 다음 라인의 정보를 확인하거나 멈춘 플레이를 다시 이어서 진행할 수 있어요.

아래 작성된 단축키를 활용해보세요. ⌨️

단축키
설명

1

1번 키를 누르면, 이어서 테스트 플레이를 진행해요. 다음 중단점을 만나면 다시 플레이가 멈춰요.

2

2번 키를 누르면, 현재 중단점의 바로 다음 라인으로 이동해서 중단해요. 다음 라인에서 호출된 함수를 만난다면, 무시하고 그 다음 라인으로 이동해요.

3

3번 키를 누르면, 마찬가지로 현재 중단점의 바로 다음 라인으로 이동해서 중단해요. 단, 다음 라인에서 호출된 함수를 만난다면, 해당 함수 내부에 있는 코드로 이동해요.

4

현재 중단된 라인이 함수 내부에 있을 경우에, 4번 키를 누르면 해당 함수를 빠져나올 수 있어요. 빠져나온 함수를 호출한 라인의 바로 다음 라인으로 이동해서 중단해요.

중단점 사용 시, 유의 사항

변수 정보가 1줄밖에 없는 코드에 중단점을 추가한다면, 중단되었을 때 해당 변수는 Auto 탭에 추가되지 않고, Watch 탭에서도 추적할 수 없어요.

Mesh, Collider 처럼 기본으로 속성을 가지고 있는 객체가 현재 스택에 포함된다면, Auto 탭에서 각 객체의 하위에 속성들을 자동으로 출력해요. 🖨️

해당하는 속성들의 값은 정확하게 출력되지 않을 수도 있다는 점을 유의해주세요. 😥

멀티플레이👥 테스트를 할 때, 중단점에 도달하면, 첫번째 플레이어의 화면만 멈춰요.

해당하는 스택의 정보 또한 첫번째 플레이어👤에서만 추적할 수 있다는 점을 기억해주세요.