AddForce는 많은 버전이 있는데, 제일 많이 사용하는걸로 살펴보자.
1) AddForce
-------------------------------
컴포넌트이름.AddForce (벡터, 포스모드)
=>
rigid.AddForce(new Vector3(1,0,0), ForceMode2D.Impulse)
-------------------------------
==================
public class PlayerMove : MonoBehaviour
{
public Rigidbody2D rigid;
void Start()
{
rigid = GetComponent();
}
void FixedUpdate()
{
rigid.AddForce(new Vector3(1,0,0), ForceMode2D.Impulse);
}
}
==================
2) AddForce 단위벡터
-------------------------------
new Vector3(1,0,0) = transform.right
=>
rigid.AddForce(transform.right, ForceMode2D.Impulse)
-------------------------------
==================
public class PlayerMove : MonoBehaviour
{
public Rigidbody2D rigid;
void Start()
{
rigid = GetComponent();
}
void FixedUpdate()
{
rigid.AddForce(transform.right, ForceMode2D.Impulse);
}
}
==================
3) AddForce 단위벡터 * speed
-------------------------------
public float speed;
=>
rigid.AddForce(transform.right*speed, ForceMode2D.Impulse)
-------------------------------
==================
public class PlayerMove : MonoBehaviour
{
public Rigidbody2D rigid;
void Start()
{
rigid = GetComponent();
}
void FixedUpdate()
{
rigid.AddForce(transform.right*speed, ForceMode2D.Impulse);
}
}
==================
-> script에서 speed 변수에 값을 10 정도 설정하고 실행해보자.
4) ForceMode2D
rigid.AddForce(transform.right*speed, ForceMode2D.Force)
rigid.AddForce(transform.right*speed, ForceMode2D.Impulse)
3d추가
rigid.AddForce(transform.right*speed, ForceMode.VelocityChange)
rigid.AddForce(transform.right*speed, ForceMode.Acceleration)
Force | 해당 리지드바디(rigidbody)의 질량을 사용해서, 연속적인 힘(force)을 가하는 경우에 사용합니다. |
Acceleration | 질량을 무시하고, 리지드바디에(rigidbody)에 연속적인 가속력(Acceleration)을 가합니다. |
Impulse | 리지드바디의 질량을 사용해서, 짧은 순간의 힘을 가하는 경우에 사용합니다. |
VelocityChange | 질량을 무시하고, 리지드바디(rigidbody)에 속도 변화를 짧은 순간에 적용할 경우에 사용합니다. |
https://docs.unity3d.com/kr/530/ScriptReference/ForceMode.html
** 더해보기
포스모드2D를 변경 해서 어떻게 가는지 살펴보자.
참고 :
https://docs.unity3d.com/kr/530/ScriptReference/Rigidbody.AddForce.html
'Unity Basic > 03. Unity C# script basic' 카테고리의 다른 글
Unity Basic ch. 16] C#Script 감지 RaycastHit2D (0) | 2020.04.27 |
---|---|
Unity Basic ch. 15] C#Script 로 Collider 제어하기 (0) | 2020.04.27 |
Unity Basic ch. 13] C#Script로 제어하기 Rigidbody 2D_Velocity (0) | 2020.04.27 |
Unity Basic ch. 12] Sprite Renderer를 C#Script로 제어하기 (0) | 2020.04.27 |
Unity Basic ch. 11] 스크립트 Transform 구성요소 제어하기 (0) | 2020.04.27 |