728x90
Addforce를 활용한 게임 요소 구현하기
- 충격력(Force) : 질량 * 거리 / 시간^2
- 충격량(Impulse) : 질량 * 거리 / 시간
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ForceController : MonoBehaviour
{
private Rigidbody boxRigidbody;
private float movePower = 5f;
void Start()
{
boxRigidbody = GetComponent<Rigidbody>();
}
private void FixedUpdate()
{
//Impulse는 1초동안 가해진 힘의 합
//FixedUpdate의 경우 0.02초동안 스텝(1초동안 50번 업데이트)
//1초 동안 힘을 50번 가함, Force * 50
//Force / Fixed Timestep
//Debug.Log(boxRigidbody2D.velocity);
if (Input.GetKeyDown(KeyCode.A))
boxRigidbody.AddForce(transform.right * movePower, ForceMode.Impulse);
//boxRigidbody.AddForce(transform.right * movePower/Time.fixedDeltaTime.ForceMode.Force);와 같음
else if (Input.GetKey(KeyCode.S))
boxRigidbody.AddForce(transform.right * movePower, ForceMode.Force);
//Impulse와 Force는 모두 질량에 영향을 받는다. F = ma
//Impulse 게임에서는 순간적인 힘을 가할 때
//Force 게임에서는 지속적으로 힘을 가할 때
else if (Input.GetKeyDown(KeyCode.D))
boxRigidbody.AddForce(transform.right * movePower, ForceMode.VelocityChange);
//boxRigidbody.AddForce(transform.right * movePower/Time.fixedDeltaTime.ForceMode.Acceleration);와 같음
else if (Input.GetKey(KeyCode.F))
boxRigidbody.AddForce(transform.right * movePower, ForceMode.Acceleration);
//VelocityChange와 Acceleration은 질량과 무관하게 힘을 가한다.
//VelocityChange 게임에서는 순간적인 힘을 가할 때
//Acceleration 게임에서는 지속적으로 힘을 가할 때
}
}
1번 상황
boxRigidbody.AddForce(transform.right * movePower, ForceMode.Impulse);
//boxRigidbody.AddForce(transform.right * movePower/Time.fixedDeltaTime.ForceMode.Force)
2번 상황
boxRigidbody.AddForce(transform.right * movePower, ForceMode.Force);
3번 상황
boxRigidbody.AddForce(transform.right * movePower, ForceMode.VelocityChange);
//boxRigidbody.AddForce(transform.right * movePower/Time.fixedDeltaTime.ForceMode.Acceleration);
4번 상황
boxRigidbody.AddForce(transform.right * movePower, ForceMode.Acceleration);
728x90
'게임 프로그래밍 > 유니티 프로젝트' 카테고리의 다른 글
[Unity]마찰력 및 저항력을 활용한 게임요소 구현하기 (0) | 2021.12.30 |
---|---|
[Unity]등속도/등가속도 운동을 활용한 게임 구현하기 (0) | 2021.12.30 |
[Unity]행렬과 Transform 이동 함수 (0) | 2021.12.29 |
[Unity]벡터의 외적을 활용한 게임요소 구현하기 (0) | 2021.12.29 |
[Unity]벡터의 내적을 활용한 게임요소 구현하기 (0) | 2021.12.29 |