힘을 이용하여 물체 움직여보기_Rigidbody
출처: https://youtube.com/playlist?list=PLO-mt5Iu5TeYI4dbYwWP8JqZMC9iuUIW2&feature=shared
📚 유니티 기초 강좌
유니티 게임 개발을 배우고 싶은 분들을 위한 기초 강좌
www.youtube.com
RigidBody 컴포넌트를 컨트롤하기 위해서 스크립트를 활용한다. 스크립트 안에서 함수를 호출하거나 변수를 변경하거나 해준다.
#1. 컴포넌트 가져오기
코드의 흐름은 선언>초기화>호출이다.

GetComponent<타입>() : 자신의 타입 컴포넌트를 가져오는 메소드이다.
#2. 속도 올리기
velocity: 현재 이동속도
velocity는 Vector3이다. rigidBody에 velocity라는 변수를 사용해서 속도를 지정해줄 수 있다.
만약 Update()에서 호출하면 계속 실행되므로 속도가 계속 유지된다.
*우리가 이러한 물리 현상에 대한 로직을 실행하려면 Update()가 아니라, FixedUpdate()에 작성해주는 것이 좋다.
(RigidBody 관련 코드는 FixedUpdate()에 작성한다.)
rigid.velocity = Vector3.right;
velocity는 현재이동속도를 뜻하는데, 벡터계열이다.
실행시키면, 현재이동속도로 오른쪽방향으로 굴러간다. :속력을 주고 나머지 현상은 전부 물리현상에 맡긴 것이다.
rigid.velocity = new Vector3(2, 4, 3);
새롭게 단위벡터를 입력해보면, 그 좌표로 이동했다가, 중력의 영향을 받고 떨어지거나 굴러간다.
#3. 힘으로 밀기
AddForce(vec): Vec의 방향과 크기로 힘을 주는 메소드
(Vector)
(벡터, ForceMode)
매개변수로 기본적으로 벡터값이 들어가지만, 매개변수를 2개 넣을 수 있다.
ForceMode는 힘을 주는 방식이다. (가속, 무게 반영) Acceleration, Force , Impulse, VelocityChange를 입력할 수 있다. 가장 많이 사용하는 것은 Impulse이다. (캐릭터 점프할때 등)
AddForce(방향*힘, 힘의종류)라고 볼 수 있다.
ForceMode는 무게에 영향을 받아서 무게 값이 클수록 더 많은 힘이 필요하다.
#4. 회전력 주기
AddTorque(Vec) : Vec 방향을 축으로 회전력이 생긴다.
매개변수로 입력한 벡터를 축으로 삼기 때문에 이동방향에 주의해야한다.
단위벡터 (크기가 1인 방향벡터)
Vector3.up Vector3.down / Vector3.right / Vector3.left / Vector3.forward / Vector3.back 등등
여기에 힘(스칼라)를 곱해줄 수 있다.