코드 흐름은 선언 < 초기화 < 호출
선언
RigidBody 변수명;
초기화
변수명 = GetComponent<T>(); // 자신의 T타입 컴포넌트를 가져옴.
호출
1. 속력 바꾸기
> velocity : 현재 이동 속도
2. 힘 가하기
> AddForce(Vec, ForceMode) : Vec의 방향과 크기로 힘을 줌, ForceMode는 힘을 주는 방식(가속, 무게 반영)을 의미함.
이때, Mass 무게 값이 클수록 움직이는데 더 많은 힘이 필요하다.
AddForce의 힘 방향으로 계속 속도 velocity가 증가.
3. 회전력
>AddTorque(Vec) : Vec 방향을 축으로 회전력이 생김.
이때, Vec를 축으로 삼기 때문에 이동 방향에 주의!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyBall : MonoBehaviour
{
//선언
Rigidbody rigid;
void Start()
{
//초기화
rigid = GetComponent<Rigidbody>();
}
void Update()
{
//1. 속력 바꾸기
rigid.velocity = new Vector3(2, 4, 3);
//2. 힘가하기
if (Input.GetButtonDown("Jump"))
{
rigid.AddForce(Vector3.up * 5, ForceMode.Impulse);
Debug.Log(rigid.velocity);
}
Vector3 vec = new Vector3(Input.GetAxisRaw("Horizontal"),
0,
Input.GetAxisRaw("Vertical"));
rigid.AddForce(vec, ForceMode.Impulse);
//3. 회전력
rigid.AddTorque(Vector3.back);
}
}
'Unity' 카테고리의 다른 글
유니티 게임 인터페이스 (0) | 2021.08.10 |
---|---|
유니티 물리 충돌 이벤트 (0) | 2021.08.09 |
유니티 실제와 같은 물체 만들기(중력 적용, 충돌, 재질 만들기) (0) | 2021.08.09 |
유니티 deltaTime (0) | 2021.08.08 |
유니티 키보드, 마우스로 이동 + 게임 오브젝트 이동 (0) | 2021.08.08 |