일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- pixel art
- Pixelart
- 포토샵
- 멋쟁이사자처럼
- 채색
- 픽셀 아트
- 도트공부
- COSMO
- 드로잉
- 서포터즈
- 장학팀
- 노하우
- 자원순환보증금관리센터
- 스마일게이트
- 에이세프라이트
- menu
- 인디게임 개발
- 반환원정대
- 개발
- 모작
- 픽셀아트
- photoshop
- 기초
- 연습
- layer
- 도트
- Aseprite
- 드로잉 연습
- TOOL
- 애니메이션
- Today
- Total
소소한 나의 하루들
힘을 이용하여 물체 움직여보기_Rigidbody 본문
출처: https://youtube.com/playlist?list=PLO-mt5Iu5TeYI4dbYwWP8JqZMC9iuUIW2&feature=shared
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 등등
여기에 힘(스칼라)를 곱해줄 수 있다.
'개발 > 유니티' 카테고리의 다른 글
게임 인터페이스_UGUI 기초 (0) | 2024.01.20 |
---|---|
물리 충돌 이벤트 (0) | 2024.01.19 |
실제와 같은 물체 만들기 (0) | 2024.01.18 |
이동거리를 공평하게, 델타타임 (0) | 2024.01.18 |
목표지점으로 이동시키기 (0) | 2024.01.18 |