이번 포스팅은 스크립트를 기능을 설명하고
이어서 설명한다.
이 포스팅을 읽고나면 어떤식으로 총알이 움직이는지
간단하게 파악할 수 있을 것이다.
현재 총알의 스크립트는
public float speed =8f;
Rigidbody bulletRigidbody;
void Start()
{
bulletRigidbody = GetComponent<Rigidbody>();
bulletRigidbody.velocity = transform.forward * speed;
}
이다.
<총알의 속도>
총알 속도는 bulletRigidbody.velocity로 조절가능하다.
총알은 만들어지자마자 바로 일정한 속도를 가지고
빠르게 움직여 주어야 하므로 생성되자 마자 바로 실행되는
Start() 메서드에다
bulletRigidbody.velocity = transform.forward * speed;
를 해준다.
transform.forward 으로 앞쪽 방향, 이동속력 8을 곱하여 이동을 하게된다.
transform.forward 은 현재 게임 오브젝트의 앞쪽방향(z축 방향)이고 vector3타입의 변수이다.
Transform 타입의 변수 transform은 자신의 게임 오브젝트의 트랜스폼 컴포넌트로 바로 접근하는 변수이다.
트랜스폼 컴포넌트는 겜오브젝트의 위치,크기,회전을 담당함 즉 모든 겜오브젝트가 하나씩 강제로 가지고있음
리지드바디 컴포넌트를 할당했는데 트랜스폼을 가져오는것이 의아할 수 있으나.
편의상 유니티의 c#스크립트는 자신의 게임오브젝트의 트랜스폼 컴포넌트를
코드상에서 transform변수로 즉시 접근 가능하게 하였다.
즉 GetComponent<Transform>(); 등으로 선언할 필요가 없다.
따라서 transform.forward;를 사용하여 자신의 트랜스폼 컴포넌트에 바로 접근한 다음
트랜스폼 컴포넌트가 제공하는 forward변수로 게임오브젝트의 앞쪽방향을 알 수 있게된다.
다음은 게임화면 밖으로 탄알이 나가면 없애는 코드를 작성한다
이유는 오브젝트가 남아있으면 컴퓨터메모리를 엄청 낭비하게 되기때문이다.
탄알 생성후 일정시간이 지나면 스스로 파괴되는 코드를 만든다.
Destroy(gameObject, 3f);
를 Start에다 추가한다.
3초뒤 자신의 오브젝트를 파괴하는것이다
<Destroy() 메서드>
입력한 오브젝트를 파괴한다, 메서드의 두번째 값(인자값 argument)으로
초단위로 지연시간을 준다.
대충 이런 코드형태 이다.
다음 포스팅은 충돌에 대하여 알아본다.
'관 > 핫한 닷지 프로젝트 게임개발' 카테고리의 다른 글
닷지 게임제작 기초 11(닷지 충돌구현 과 프리팹 다루기 편). (2) | 2020.07.26 |
---|---|
닷지 게임제작 기초 10(충돌 편). (0) | 2020.07.25 |
닷지 게임제작 기초 08(닷지 총알 편). (2) | 2020.07.22 |
닷지 게임제작 기초 07(플레이어 스크립트 편). (0) | 2020.07.21 |
닷지 프로젝트 오브젝트 기초 06(스크립트 개선하기). (0) | 2020.07.20 |
댓글