반응형
- 컴포넌트 가져오기
- GetComponent<T> : 자신의 T타입 컴포넌트를 가져옴
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyBall : MonoBehaviour
{
Rigidbody rigid;
void Start()
{
rigid = GetComponent<Rigidbody>();
}
}
- 물체 속도 설정으로 이동
- velocity : 현재 이동 속도
- RigidBody 관련 코드는 FixedUpdate에 작성 (일반 Update 함수에 X)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyBall : MonoBehaviour
{
Rigidbody rigid;
void Start()
{
rigid = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
rigid.velocity = Vector3.forward;
}
}
- 물체에 힘을 가해 이동
- AddForce(Vec) : Vec의 방향과 크기로 힘을 줌
- ForceMode : 힘을 주는 방식 (가속, 무게 반영)
- Mass 무게 값이 클수록 움직이는데 더 많은 힘이 필요
- AddForce의 힘 방향으로 계속 속도 velocity가 증가
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyBall : MonoBehaviour
{
Rigidbody rigid;
void Start()
{
rigid = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
// Jump 버튼을 누를 경우 힘으로 이동
if (Input.GetButtonDown("Jump"))
{
rigid.AddForce(Vector3.up * 10, ForceMode.Impulse);
}
}
}

- 버튼 입력으로 이동
- RigidBody를 사용한 이동은 transform을 사용하는 것보다 자연스러움
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyBall : MonoBehaviour
{
Rigidbody rigid;
void Start()
{
rigid = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
Vector3 vec = new Vector3(Input.GetAxisRaw("Horizontal"),
0,
Input.GetAxisRaw("Vertical"));
rigid.AddForce(vec, ForceMode.Impurse);
}
}
- 회전력 적용
- AddTorque(Vec) : Vec 방향을 축으로 회전력이 생김
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyBall : MonoBehaviour
{
Rigidbody rigid;
void Start()
{
rigid = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
//rigid.AddTorque(Vector3.back);
//rigid.AddTorque(Vector3.up);
rigid.AddTorque(Vector3.down);
}
}
참고
- 골드메탈 - 힘을 이용하여 물체 움직여보기 [유니티 입문 강좌 B10]
https://www.youtube.com/watch?v=h_MA36TGFsc&list=PLO-mt5Iu5TeYI4dbYwWP8JqZMC9iuUIW2&index=11
반응형
'Programming > Unity' 카테고리의 다른 글
[Unity] 14. 게임 인터페이스 (0) | 2022.07.11 |
---|---|
[Unity] 13. 물리 충돌 이벤트 (0) | 2022.07.10 |
[Unity] 11. 물리 영향을 받는 게임 오브젝트 생성 (0) | 2022.07.10 |
[Unity] 10. 델타타임 (0) | 2022.07.10 |
[Unity] 9. 목표 지점 이동 (0) | 2022.07.10 |
댓글