> For the complete documentation index, see [llms.txt](https://docs.overdare.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.overdare.com/korean/development/api-reference/datatype/ballbounce.md).

# BallBounce

## Overview

`BallBounce`는 공이 표면과 충돌(바운스)할 때의 상태를 담는 데이터 타입입니다. 충돌 직전의 진행 방향/속도/스핀과 각속도, 충돌 시각과 충돌 후의 방향/속도/스핀 변화, 충돌 지점/법선 등 바운스 이벤트 분석에 필요한 정보를 제공합니다. 리플레이 표시, 물리 파라미터 튜닝, 충돌 반응 디버깅에 활용됩니다.

## Constructors

## Properties

### AngularVelocity

`Vector3`

충돌 직전 각속도 벡터. 방향은 회전 축, 크기는 각속도입니다.

#### Code Samples

```lua
local bounce = bounce
print("Incoming ang vel:", bounce.AngularVelocity)
```

### BouncedAngularVelocity

`Vector3`

충돌 이후 각속도 벡터.

#### Code Samples

```lua
local bounce = bounce
print("Outgoing ang vel:", bounce.BouncedAngularVelocity)
```

### BouncedDirection

`Vector3`

충돌 이후의 진행 방향 단위 벡터입니다.

#### Code Samples

```lua
local bounce = bounce
print("Outgoing dir:", bounce.BouncedDirection)
```

### BouncedPosition

`Vector3`

충돌 지점의 위치입니다.

#### Code Samples

```lua
local bounce = bounce
print("Hit position:", bounce.BouncedPosition)
```

### BouncedRotation

`Vector3`

{description slot}

#### Code Samples

### BouncedSpeed

`number`

충돌 이후 속도.

#### Code Samples

```lua
local bounce = bounce
print("Outgoing speed :", bounce.BouncedSpeed)
```

### BouncedSpin

`number`

충돌 이후 스핀.

#### Code Samples

```lua
local bounce = bounce
print("Outgoing spin :", bounce.BouncedSpin)
```

### BouncedTime

`number`

바운스 발생 시각(초). 시뮬레이션 타임라인 상의 시간값입니다.

#### Code Samples

```lua
local bounce = bounce
print("Bounce time (s):", bounce.BouncedTime)
```

### CFrame

`CFrame`

충돌 지점을 기준으로 한 공의 자세(`BouncedPosition + BouncedRotation` 기준). 위치와 회전을 함께 포함합니다.

#### Code Samples

```lua
local bounce = bounce -- BallBounce received from the simulator
print("Bounce CFrame:", bounce.CFrame)
```

### Direction

`Vector3`

충돌 직전의 진행 방향 단위 벡터입니다.

#### Code Samples

```lua
local bounce = bounce
print("Incoming dir:", bounce.Direction)
```

### ImpactNormal

`Vector3`

충돌 표면의 법선 벡터입니다(표면에 수직한 방향).

#### Code Samples

```lua
local bounce = bounce
print("Impact normal:", bounce.ImpactNormal)
```

### ImpactPoint

`Vector3`

충돌 접촉점의 월드 좌표입니다.

#### Code Samples

```lua
local bounce = bounce
print("Impact point:", bounce.ImpactPoint)
```

### IsBouncedHit

`boolean`

이 충돌이 실제 바운스(반사)였는지 여부를 나타냅니다. 슬라이딩 충돌인 경우(`IsSlidingHit`이 `true`)에는 `false`입니다.

#### Code Samples

```lua
local bounce = bounce
if bounce.IsBouncedHit then
    print("This is a real bounce")
end
```

### IsSlidingHit

`boolean`

충돌 시 공이 표면 위를 미끄러지고 있었는지(슬라이딩 충돌인지) 여부를 나타냅니다. 실제 바운스인 경우(`IsBouncedHit`이 `true`)에는 `false`입니다.

#### Code Samples

```lua
local bounce = bounce
if bounce.IsSlidingHit then
    print("This is a sliding hit")
end
```

### SnapshotIndex

`number`

{description slot}

#### Code Samples

### Speed

`number`

충돌 직전 속도.

#### Code Samples

```lua
local bounce = bounce
print("Incoming speed :", bounce.Speed)
```

### SpinSpeed

`number`

충돌 직전 스핀(각속도 크기).

#### Code Samples

```lua
local bounce = bounce
print("Incoming spin :", bounce.SpinSpeed)
```

### StartPos

`Vector3`

바운스 시뮬레이션 구간의 시작 위치입니다.

#### Code Samples

```lua
local bounce = bounce
print("Start pos:", bounce.StartPos)
```

## Methods

## Events

## See also

{% content-ref url="/pages/ca0qkgbvP2luHQy0HlFQ" %}
[SimulationBall](/korean/development/api-reference/classes/simulationball.md)
{% endcontent-ref %}
