Creator Guide
Korean
Korean
  • OVERDARE
    • 🚩OVERDARE 소개
    • 🐤시작하기
      • OVERDARE App
      • OVERDARE Studio
    • 📌운영 정책
      • 커뮤니티 가이드라인
      • UGC 콘텐츠 제작 가이드라인
      • UGC의 외부 활용 가이드라인
      • LOGO 활용 가이드라인
      • 지식 재산권 정책
      • 신고 안내
      • 콘텐츠 제재 이의 신청 안내
      • 크리에이터 정산 정책
      • OVERDARE 수익화 가이드라인
    • 🅰️OVERDARE Glossary
  • MANUAL
    • 🏰스튜디오 메뉴얼
      • 시작하기
        • 스튜디오 인터페이스
        • 월드 템플릿
        • 좌표계
        • 스튜디오 테스트 플레이
        • 월드 퍼블리시
        • Collaboration
      • 에셋 & 리소스 제작
        • 에셋 임포트
        • 애니메이션 에디터
      • 게임 제작
        • 게임 설정
        • 스크립트 에디터
        • 정렬
        • Material Manager
        • Collision Groups
        • Tag Editor
        • 퍼포먼스 가이드
      • Object
        • 파트
        • 모델
        • 카메라
        • 물리
        • 조명
        • Tool
        • VFX
        • Sound
      • 캐릭터
        • 캐릭터 애니메이션
        • Humanoid Description
      • GUI
    • 📝스크립트 메뉴얼
      • 시작하기
        • 스크립트 개요
        • 루아 기초 가이드
        • 코딩 스타일
        • 오브젝트 참조
        • 유니티 개발자용 가이드
      • 이벤트 및 통신
        • 이벤트
        • 서버-클라 통신
        • BindableEvent
        • Value Objects
      • 입력 및 조작
        • 모바일 조작 처리
        • TPS Strafing System
      • 게임 고도화
        • Saving & Loading Data
        • 트윈
        • 모듈 스크립트
      • 디버깅 & 최적화
        • 중단점
        • 스크립트 최적화 실전 가이드
  • 💸수익화
    • Payout Guideline
  • DEVELOPMENT
    • 📚API Reference
      • Enums
        • ActuatorRelativeTo
        • AnimationPriority
        • AspectType
        • AssetTypeVerification
        • BorderMode
        • CameraMode
        • CameraType
        • ContextActionResult
        • CoreGuiType
        • DominantAxis
        • EasingDirection
        • EasingStyle
        • ForceLimitMode
        • HttpCompression
        • HttpContentType
        • HumanoidDisplayDistanceType
        • HumanoidStateType
        • KeyCode
        • Material
        • MaterialPattern
        • NormalId
        • ParticleEmitterShape
        • ParticleEmitterShapeInOut
        • ParticleEmitterShapeStyle
        • ParticleFlipbookLayout
        • ParticleFlipbookMode
        • ParticleOrientation
        • PartType
        • PlaybackState
        • RaycastFilterType
        • RollOffMode
        • RotationType
        • UserInputState
        • UserInputType
        • VelocityConstraintMode
      • DataTypes
        • BlendSpaceSampleSata
        • BrickColor
        • CFrame
        • Color3
        • ColorSequence
        • ColorSequenceKeypoint
        • Content
        • Enum
        • EnumItem
        • NumberRange
        • NumberSequence
        • NumberSequenceKeypoint
        • OverlapParams
        • PhysicalProperties
        • Ray
        • RaycastParams
        • RaycastResult
        • ScriptConnection
        • ScriptSignal
        • TweenInfo
        • Udim
        • Udim2
        • Vector2
        • Vector3
      • Classes
        • Animation
        • AngularVelocity
        • AnimationTrack
        • Animator
        • Atmosphere
        • Attachment
        • Backpack
        • BackpackItem
        • BasePart
        • BaseScript
        • Beam
        • BindableEvent
        • BlendSpace
        • BoolValue
        • Bone
        • Camera
        • CharacterMesh
        • CollectionService
        • Constraint
        • ContextActionService
        • CoreGui
        • DataStore
        • DataModel
        • DataStoreGetOptions
        • DataStoreIncrementOptions
        • DataStoreInfo
        • DataStoreKeyPages
        • DataStoreKeyInfo
        • DataStoreService
        • DataStoreListingPages
        • DataStoreSetOptions
        • FormFactorPart
        • Frame
        • Folder
        • GlobalDataStore
        • GuiBase2d
        • GuiButton
        • GuiObject
        • HttpService
        • Humanoid
        • HumanoidDescription
        • ImageButton
        • ImageLabel
        • InputObject
        • IntValue
        • LayerCollector
        • Instance
        • Light
        • Lighting
        • LinearVelocity
        • LocalScript
        • LuaSourceContainer
        • MaterialService
        • MaterialVariant
        • MeshPart
        • Model
        • ModuleScript
        • Mouse
        • OrderedDataStore
        • Pages
        • Part
        • ParticleEmitter
        • PhysicsService
        • Player
        • PlayerGui
        • Players
        • PlayerScripts
        • PointLight
        • PVInstance
        • ReplicatedStorage
        • RemoteEvent
        • ScreenGui
        • RunService
        • Script
        • ServerStorage
        • ServiceProvider
        • Skeleton
        • ServerScriptService
        • Sound
        • SoundService
        • SoundGroup
        • SpotLight
        • SpawnLocation
        • StarterCharacterScripts
        • StarterPack
        • StarterGui
        • StarterPlayer
        • StarterPlayerScripts
        • StringValue
        • SurfaceGui
        • SurfaceGuiBase
        • Team
        • Teams
        • TextLabel
        • TextButton
        • Tool
        • Trail
        • Tween
        • TweenService
        • TweenBase
        • UIAspectRatioConstraint
        • UserGameSettings
        • UserInputService
        • UserSettings
        • VectorForce
        • Workspace
        • WrapLayer
        • WorldRoot
        • WrapTarget
  • UPDATE
    • 📰Release Note
Powered by GitBook
On this page
  • 개요
  • 사용 방법
  • 1. Script Editor에서 중단점 설정
  • 2. 테스트 플레이에서 중단점이 설정된 코드 라인 실행
  • 3. Watch 분석
  • 4. Call Stack 분석
  • 5. Break Point 일괄 편집
  • 6. 문제와 해결
  • 활용 예시
  1. MANUAL
  2. 스크립트 메뉴얼
  3. 디버깅 & 최적화

중단점

Previous디버깅 & 최적화Next스크립트 최적화 실전 가이드

Last updated 2 months ago

개요

중단점(Breakpoint) 기능은 스크립트 디버깅 도구로, 스크립트 실행 중 특정 위치에서 코드를 일시 중지하여 해당 지점의 상태를 조사하거나 문제를 분석하는 데 사용됩니다.

중단점에 적중되면 Watch, Call Stack 등의 디버깅 패널을 통해 현재 실행 상태를 확인하고 코드를 단계별로 진행할 수 있습니다.

사용 방법

1. Script Editor에서 중단점 설정

디버깅이 필요한 스크립트를 열고 중단점을 실행할 코드 라인을 확인한 뒤, 코드 라인 번호 왼쪽의 가로열 부분을 클릭해 중단점을 생성합니다.

중단점이 생성되면 붉은 원(🔴)이 생성되며, 원을 다시 클릭하면 비활성화(⭕)할 수 있습니다.

생성한 중단점을 우클릭한 다음, 메뉴에서 각 기능을 눌러 중단점을 편집할 수 있습니다.

  • Edit Breakpoint : 중단점 조건식 설정

  • Disable Breakpoint : 중단점 비활성화

  • Delete Breakpoint : 중단점 제거

2. 테스트 플레이에서 중단점이 설정된 코드 라인 실행

테스트 플레이를 실행한 다음, 중단점이 설정된 코드 라인이 실행될 수 있도록 게임을 조작합니다.

중단점이 설정된 코드 라인이 실행되면(중단점 적중) 게임이 멈추고, 적중된 중단점의 코드 라인에 화살표(➡)가 표시됩니다. 이 상태에서 Call Stack이나 Watch를 분석할 수 있습니다.

3. Watch 분석

Watch 탭에서 변수 값의 상태나 특정 변수 추적 등 현재 상태를 확인할 수 있습니다.

4. Call Stack 분석

Call Stack 탭에서 코드 호출의 흐름를 확인할 수 있습니다.

Call Stack 탭 상단의 버튼을 눌러, 적중된 중단점을 탈출하여 다음 중단점으로 넘어가거나, 정지된 게임을 재개할 수 있습니다.

  • 1️⃣ Step Into : 현재 줄의 함수 내부로 들어가 디버깅을 진행합니다.

  • 2️⃣ Step Over : 현재 줄의 함수를 실행하고 내부로 들어가지 않고 다음 줄로 이동합니다.

  • 3️⃣ Step Out : 현재 함수의 나머지를 실행한 뒤 상위 함수로 돌아갑니다.

5. Break Point 일괄 편집

여러 스크립트에 중단점을 설정한 경우, 각 스크립트를 열지 않더라도 Breakpoints 탭에서 전체 목록을 확인할 수 있으며, Breakpints 탭 상단의 버튼을 눌러 모든 중단점을 활성화/비활성화하거나 제거할 수 있습니다.

  • 1️⃣ Disable All Breakpoints : 모든 중단점을 활성화/비활성화

  • 2️⃣ Delete All Breakpoints : 모든 중단점을 제거

6. 문제와 해결

Call Stack과 Watch 정보를 바탕으로 디버깅 중 특정 변수의 값 확인, 오브젝트 속성의 변화 추적, 예상치 못한 함수 호출, 의도하지 않은 코드 흐름 등을 효과적으로 분석할 수 있습니다.

활용 예시

중단점은 코드의 문제를 파악하고 수정하는 데 매우 효과적인 도구입니다. 예를 들어, 반복문에서 누적 합계를 계산하는 코드가 예상과 다른 결과를 출력한다면 Watch 탭을 활용해 변수의 값을 추적하고 초기값 설정이나 계산식 오류를 쉽게 발견할 수 있습니다.

또한 Call Stack 탭은 함수 호출 순서를 추적하고 코드 실행 경로를 이해하는 데 유용합니다. 예를 들어, 특정 함수가 예상치 못한 값으로 호출되거나 호출 순서가 어긋난 경우, Call Stack을 확인하여 문제의 근본 원인을 찾을 수 있습니다.

이처럼 디버깅 도구를 적절히 활용하면 변수 상태, 함수 호출 흐름, 코드의 논리를 체계적으로 분석할 수 있어 문제 해결 속도를 크게 높일 수 있습니다.

📝