C#을 통해서 간단히 물체를 이동하는 스크립트를 짤 수 있다.
public class BallScript : MonoBehaviour
{
Rigidbody rigid;
// Rigidbody클래스의 객체를 생성해준다.
void Start()
{
rigid = GetComponent<Rigidbody>();
// 컴포넌트 생성으로 초기화
rigid.velocity = Vector3.right;
// velocity에 Vector3로 값을 주면 간단히 오른쪽으로 이동하는 기능이 구현된다.
}
void Update()
{
}
}

이 때 물리 기존에 지정한 물리 값을 토대로 물체가 이동하게 된다. (collider, material 등)
public class BallScript : MonoBehaviour
{
Rigidbody rigid;
void Start()
{
rigid = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
rigid.velocity = new Vector3(1, 4, -2);
// 이처럼 Vector값을 줄 수도 있다.
}
}
벡터 값을 지정해서 특정 이동을 계속해서 줄 수도 있다.
Rigidbody 객체에 AddForce매소드를 지정하면 힘을 줄 수 있다.
public class BallScript : MonoBehaviour
{
Rigidbody rigid;
void Start()
{
rigid = GetComponent<Rigidbody>();
rigid.AddForce(Vector3.up * 5, ForceMode.Impulse);
// ForceMode는 힘을 주는 방식이다.
// ForceMode는 네가지 방식이 있다.
// 1) 연속적인 힘 + 무게에 영향 : ForceMode.Force
// 2) 연속적인 힘 + 무게 무시 : ForceMode.Acceleration
// 3) 순간적인 힘 + 무게에 영향 : ForceMode.Impulse
// 4) 순간적인 힘 + 무게 무시 : ForceMode.VelocityChange
}
void FixedUpdate()
{
}
}
만약 사용자의 입력 값에 따라서 물체를 이동하려면 아래와 같이 코드를 짜면 된다.
public class BallScript : MonoBehaviour
{
Rigidbody rigid;
void Start()
{
rigid = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
if (Input.GetButtonDown("Jump"))
{
rigid.AddForce(Vector3.up * 25, ForceMode.Impulse);
}
// 백터 값을 사용자의 입력 키에 따라 받는다. x축,z축
Vector3 vec = new Vector3(
Input.GetAxisRaw("Horizontal"),
0, Input.GetAxisRaw("Vertical"));
// 객체에 위에서 만든 백터 인스턴스를 넣어 사물 이동 구현!
rigid.AddForce(vec, ForceMode.Impulse);
}
}
AddTorque(Vec) : Vec 방향을 축으로 회전력이 생긴다.
void FixedUpdate()
{
rigid.AddTorque(Vector3.back);
}
이와 같이 작성하면 축을 잡아서 이동한다.