좌, 우 화살표 키를 눌러서 객체를 좌우로 이동시키는 코드 예입니다.
1. transform.position 이용
public float speed = 10.0f;
float key = Input.GetAxis("Horizontal");
transform.position = new Vector3(transform.position.x + speed * Time.deltaTime * key, transform.position.y, transform.position.z);
2. GetComponent<Rigidbody2D>().AddForce() 이용
이 방법을 사용하기 위해서는 객체에 Rigidbody2D 컴포넌트를 추가해 주어야 합니다.
public float moveForce = 365f;
public float speed = 10.0f;
float key = Input.GetAxis("Horizontal"); // -1.0 ~ 1.0 의 값을 반환한다.
if(key != 0){
if(key * GetComponent<Rigidbody2D>().velocity.x < speed)
GetComponent<Rigidbody2D>().AddForce(Vector2.right * key * moveForce); //객체의 x축에 힘을 가한다.
//누적된 힘이 speed값을 넘지 않도록 한다.
if(Mathf.Abs(GetComponent<Rigidbody2D>().velocity.x) > speed)
GetComponent<Rigidbody2D>().velocity = new Vector2(Mathf.Sign(GetComponent<Rigidbody2D>().velocity.x) * speed, GetComponent<Rigidbody2D>().velocity.y);
}else{
//키보드를 누르지 않으면 객체 이동을 멈춘다.
GetComponent<Rigidbody2D>().velocity = new Vector2(Mathf.Sign(GetComponent<Rigidbody2D>().velocity.x) * 0, GetComponent<Rigidbody2D>().velocity.y);
}
'프로그램 > Unity-Refer' 카테고리의 다른 글
카메라가 주인공을 따라가게 하는 방법 (0) | 2016.04.04 |
---|---|
객체 이동 시에 카메라를 이동 시키는 방법 (0) | 2016.04.01 |
HideInInspector, System.NonSerialized, SerializeField (0) | 2016.03.23 |
다른 게임오브젝트의 스크립트 참조하는 방법 (0) | 2016.03.19 |
transform.Rotate() (0) | 2016.03.17 |