StaticBody2D 소개
StaticBody2D는 Godot 엔진에서 정적인 2D 물리 객체를 구현하기 위한 노드입니다. 외부 힘이나 충돌로 인해 움직이지 않으며, 수동적으로 위치를 변경하더라도 이동 경로에 있는 다른 물체에 영향을 주지 않습니다. 바닥, 벽 같은 고정된 객체부터 컨베이어 벨트나 회전 플랫폼과 같은 움직이는 표면까지, 다양한 게임 환경을 구성하는 데 유용합니다.
StaticBody2D는 일정한 선속도와 각속도를 설정하여 접촉 중인 물체에 물리적인 영향을 줄 수 있습니다. 이를 통해 캐릭터가 컨베이어 벨트 위에서 자연스럽게 이동하거나, 회전 플랫폼 위에서 반응하는 효과를 간단하게 구현할 수 있습니다. 또한, 물리 재질을 재정의하여 마찰력이나 반발력을 조정해 더욱 정교한 상호작용을 만들 수 있습니다.
활용 사례:
- 정적인 환경: 바닥, 벽, 장애물 등 움직이지 않는 환경 요소
- 움직이는 표면: 컨베이어 벨트, 회전 플랫폼과 같은 동적 요소
- 물리적 상호작용: 일정한 속도와 각속도를 활용한 자연스러운 물리 효과
StaticBody2D는 단순하면서도 강력한 기능을 제공하여, 게임의 정적인 부분과 동적인 부분을 균형감 있게 설계할 수 있는 중요한 도구입니다.
정적인 구조물부터 움직이는 표면까지, StaticBody2D로 게임 세계를 완성하세요!
StaticBody2D
상속 구조:
PhysicsBody2D < CollisionObject2D < Node2D < CanvasItem < Node < Object
상속받는 클래스:
AnimatableBody2D
StaticBody2D는 외부 힘에 의해 움직이지 않는 정적인 2D 물리 바디입니다. 직접적으로 위치를 이동시키거나 애니메이션을 통해 이동시킬 수 있지만, 다른 물체에 영향을 주지 않습니다.
설명
StaticBody2D는 정적인 2D 물체를 표현하기 위한 물리 객체입니다. 외부 힘이나 충돌로 인해 움직이지 않으며, 수동적으로 위치를 변경할 수 있습니다. 이때 이동은 텔레포트처럼 이루어지며, 이동 경로에 있는 다른 물리 객체에는 영향을 미치지 않습니다.
만약 이동 시 다른 객체에도 영향을 주고 싶다면, 대신 AnimatableBody2D를 사용하는 것이 좋습니다.
StaticBody2D의 주요 활용 사례:
- 완전히 고정된 물체: 바닥, 벽, 장애물 등
- 움직이는 표면: 컨베이어 벨트, 회전하는 플랫폼 등
(이를 위해 constant_linear_velocity와 constant_angular_velocity를 사용할 수 있음)
프로퍼티
타입 | 이름 | 기본값 | 설명 |
---|---|---|---|
float | constant_angular_velocity | 0.0 | 물체의 일정한 각속도. 실제로 회전하지는 않지만 접촉한 물체에 영향을 줍니다. |
Vector2 | constant_linear_velocity | Vector2(0, 0) | 물체의 일정한 선속도. 실제로 이동하지는 않지만 접촉한 물체에 영향을 줍니다. |
PhysicsMaterial | physics_material_override | 없음 | 물리 재질을 재정의하여 이 물체에 적용합니다. 다른 물리 재질을 덮어씁니다. |
프로퍼티 설명
constant_angular_velocity
- 설명: 일정한 각속도를 설정합니다. 이 값은 물체를 실제로 회전시키지는 않지만, 접촉 중인 물체가 회전하는 것처럼 반응하게 만듭니다.
- 사용 예:
$StaticBody2D.constant_angular_velocity = 2.0
constant_linear_velocity
- 설명: 일정한 선속도를 설정합니다. 물체가 실제로 움직이지 않지만, 접촉 중인 물체가 해당 방향으로 밀리는 효과를 만듭니다.
- 사용 예:
$StaticBody2D.constant_linear_velocity = Vector2(100, 0)
physics_material_override
- 설명: 물체에 물리 재질을 재정의하여 적용합니다. 기존에 상속된 물리 재질보다 이 값이 우선적으로 적용됩니다.
- 사용 예:
var material = PhysicsMaterial.new() material.friction = 1.0 material.bounce = 0.5 $StaticBody2D.physics_material_override = material
StaticBody2D의 활용 팁
- 완전히 고정된 물체: 바닥, 벽과 같은 물체를 구현할 때 가장 적합합니다.
- 움직이는 표면: 컨베이어 벨트나 회전 플랫폼을 구현해 캐릭터가 그 위에서 자연스럽게 이동하도록 만들 수 있습니다.
- 간단한 충돌 처리: StaticBody2D는 이동하지 않으므로 충돌 시 계산이 간단하고 성능에 최적화되어 있습니다.
StaticBody2D를 통해 정적인 환경과 역동적인 움직임을 조화롭게 만들어 보세요!