게임 물리 - 힘과 가속도) 복습을 위해 작성하는 글 2023-04-04

rizz·2023년 4월 4일
0

물리

목록 보기
1/5

📒 갈무리 - 힘과 가속도

📌 충격력과 충격량

F = ma

F = 힘(N), m = 질량(kg), a = 가속도(m/s²)

- 힘 F가 동일할 때, 질량이 크면 가속도는 작아지고, 질량이 작아지면 가속도 값은 커질 것이다.

중력(g) = -9.8m/s²

무게(힘) = mg

V1 = V2 자유낙하 운동의 법칙 : 질량과 상관없이 두 물체가 받는 가속도가 일정하기 때문에 두 물체는 같은 속도로 떨어지게 된다.

- 일상생활에서 물체가 같은 속도로 떨어지지 않는 이유는 공기 저항력이 있기 때문이고, 공기 저항력이 없다면 같은 중력 값을 받기 때문에 어떠한 물체도 같은 속도로 떨어지게 될 것이다.

- 힘을 주는 것과 가속도를 주는 것은 엄연히 다르다.

- 힘을 주는 것은 질량에 따라 속도가 달라지는 것이지만, 가속도를 주는 것은 동일한 가속도를 주는 것이기 때문에 질량과 무관하게 속도가 변한다.

 

- 충격량이란, 일정 시간동안 가해졌던 힘들의 합

I = F·Δt

I = 충격량(kg·m/s)

F = 힘(kg·m/s²)

t = 시간(s)

Force = 질량 x 거리 / 시간²

Impulse 질량 x 거리 / 시간

 

🎯 그렇다면 게임에서 어떻게 활용할 수 있을까?

3D에서의 힘을 가하는 방식은 총 네 가지가 있다.(Force, Impulse, Acceleration, VelocityChange)

2D에서의 힘을 가하는 방식은 총 두 가지가 있다.(Force, Impulse)

Force : 질량에 영향을 받으며 지속적으로 힘을 가할 때

Impulse : 질량에 영향을 받으며 순간적으로 힘을 가할 때(1초)

Acceleration : 질량에 영향을 받지 않고 지속적으로 힘을 가할 때

VelocityChange : 질량에 영향을 받지 않고 순간적으로 힘을 가할 때(1초)

 

💡 TIP

물리학 계산에서는 FixedUpdate(0.02초, 1초에 50번)를 사용함

Force * 50 = Impulse

Force / Fixed Timestemp(0.02) = Impulse

// C#
	boxRigidbody.AddForce(transform.right * movePower / Time.fixedDeltaTime, ForceMode.Force);
	boxRigidbody.AddForce(transform.right * movePower, ForceMode.Impulse);
    // 위 코드와 아래 코드는 같은 뜻이다.
    
    boxRigidbody.AddForce(transform.right * movePower / Time.fixedDeltaTime, ForceMode.Acceleration);
    boxRigidbody.AddForce(transform.right * movePower, ForceMode.VelocityChange);
    // 위 코드와 아래 코드는 같은 뜻이다.
profile
복습하기 위해 쓰는 글

0개의 댓글