본문 바로가기
관/핫한 닷지 프로젝트 게임개발

닷지 게임제작 기초 09(닷지 총알 스크립트 편).

by 4차원 박스 2020. 7. 23.

이번 포스팅은 스크립트를 기능을 설명하고

이어서 설명한다.

 

이 포스팅을 읽고나면 어떤식으로 총알이 움직이는지

간단하게 파악할 수 있을 것이다.

현재 총알의 스크립트는 

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)으로 
초단위로 지연시간을 준다.

 

대충 이런 코드형태 이다.

다음 포스팅은 충돌에 대하여 알아본다.

댓글