본문 바로가기
프로그램/Unity-Refer

2D 객체 이동

by 로드러너 2016. 3. 31.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

좌, 우 화살표 키를 눌러서 객체를 좌우로 이동시키는 코드 예입니다.


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);

}