투사체는 게임을 실행하는 도중 생성되어 날아가야 하며, 키 입력에 따라 여러 개가 생길 필요가 있음
프리팹(Prefab) 에셋 타입을 이용
Input.GetKey() 대신 Input.GetKeyDown()d을 사용
키가 눌리는 순간 그 한 번만을 체크하는 메서드이다.
또한 Instantiate() 메서드는 인수로 전달된 프리맵 게임 오브젝트를 게임에 생성해 준다.
→ 인스펙터 창에서 갑을 줘야 Instantiate가 인식을 함
→ 프로젝트 창에 있는 BulletPrefab을 넣어야 함.
if(Input.GetKeyDown(KeyCode.Space))
{
GameObject Bullet = Instantiate(BulletPrefab);
Bullet.transform.position = transform.position;
Bullet.GetComponent<Rigidbody2D>().AddForce(Vector2.up * BulletSpeed);
}
게임 오브젝트에 속도를 주는 대표적인 방법 → Rigidbody2D 컴포넌트를 추가
오브젝트를 유니티 물리엔진이 제어하게 만드는 컴포넌트
Bullet의 중력을 0으로 하고 속도를 주는 코드 추가
Bullet.GetComponent<Rigidbody2D>().AddForce(Vector2.up * BulletSpeed);
AddForce() 메서드는 Vector를 입력받아 해당 오브젝트에 입력받은 방향과 세기로 힘을 가하는 메서드