유니티 일기
힘을 이용하여 물체 움직여보기(Rigidbody 컴포넌트)
mky
2025. 8. 25. 14:13
3d에 2d 컴포넌트 넣지말기. 그 반대도 동일
Rigidbody 관련 코드는 FixedUpdate에서 작성
velocity : 현재 이동 속도
AddForce(Vec) : Vec의 방향과 크기로 힘을 줌, Mass 무게 값이 클수록 움직이는데 더 많은 힘이 필요
- ForceMode: 힘을 주는 방식(가속, 무게 반영)
RigidBody를 사용한 이동은 보다 자연스러움
AddTorque(Vec) : Vec 방향을 축으로 회전력이 생김
using UnityEngine;
public class MyBall : MonoBehaviour
{
Rigidbody rigid;
void Start()
{
rigid = GetComponent<Rigidbody>();
//rigid.linearVelocity = Vector3.left; // velocity : 현재 이동 속도
//rigid.AddForce(Vector3.up * 1, ForceMode.Impulse);
}
void FixedUpdate() // Rigidbody 관련 코드는 FixedUpdate에서 작성
{
/*if (Input.GetButtonDown("Jump"))
{
rigid.AddForce(Vector3.up * 40, ForceMode.Impulse);
Debug.Log(rigid.linearVelocity);
}
Vector3 vec = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
rigid.AddForce(vec, ForceMode.Impulse);*/
rigid.AddTorque(Vector3.forward);
}
}