이번에는 지난 챕터에 이어 간단하게 물리엔진 및 Tails를 이용하여 총을 쏘는 부분을 구현해 보겠음...
잘 보면 지난 챕터와는 그다지 다른 부분은? 없다!
단지 스페이스바를 눌렀을때 총알을 발사하는 부분만 추가 되었다.
29번째 부터 설명하겠음.
저부분은 나중에 나오지만 간단하게 말하자면 우리가 프로젝트에 있는 총알을 로드해서 Hierachy에 등록하는 부분이다.
29번째 라인이 생성을 하는 것이고, 31번째와 32번째는 잘 보면 어떤것이다?
총알이 위치할 위치값과, 총알이 나갈 방향을 셋팅해 주는 부분이다.
gunShotPosition은 총알이 위치할 위치값이고,
gunPosition은 총의 회전값을 가져왔음(총알이나가는 방향이 총의 회전방향값이라고 생각하면 맘이 편할것임)...
여기서 obj는 무엇이다? 총알이다.
obj.rigidbody는 어떤 속성이냐? 물리엔진 속성이라고 생각하면 된다.
물리엔진 속성 중에 AddForce라는 함수가 있는데...
Force 영어로 사전적인 의미로는 힘, 물리력인데 Add 추가? 더하다 라는 의미라고 생각하면된다. transform.forward는 현재 케릭터의 앞을 가리키는 방향으로 1000f 만큼 힘을 주겠다라는 의미이므로 어떻게 된다?
바로 총알이 튀어 나간다라는 부분이 되겠음.
이게 메인 프로젝트 부분인데 Trail 컴포넌트에 대해 간단히 설명하겠음...
자기가 예비군이거나 아니면 fps 총쏘는 게임을 해봤다라고 한다면 총을 쏘는 순간 총알의 궤적이 보인다.
총알이 날아가면서 꼬리에 섬광같은 효과가 붙는데 이게 Trail 컴포넌트의 역할이다.
이펙트는 필자도 솔직히 제데로 공부한적은 없어서 그냥 사용하는 정도다...
여기서 우리가 설정해야 될 것이 Material인데 없으면 기본적으로 제공하는거 쓰면된다.... Material에 따라 나타나는 효과가 다르다.
Color는 꼬리가 생기면서 나오는 컬러값 설정해주면 된다. 마지막 값이 마지막에 나타나는 색깔이다.
Min Vertex Distance는 최소 움직인 거리이상이면 효과가 나타난다. 그 값 이하면 안나타남.
Start width, End width는 시작할떄 꼬리 넓이와 끝날때 넓이가 되겠다.
이 효과를 이용해서 검기와 같은 효과를 낼수가 있다. 에셋스토어에 가면 많이 올라와 있으니 실행해보기 바람
총알 같은 경우 그냥 놔두면 계속 전진하므로 5초후에 사라지거나 무언가에 충돌하면 사라지도록 하겠다.
보면 간단하다.
totalTime이 누적된 시간이며, Time.deltaTime은 프레임당 시간이 되겠다.
조건문으로 5보다 크면 Destroy를 호출해서 현재 게임오브젝트를 제거하는 부분이다.
void OnCollisionEnter(Collision col) 함수는 충돌이 생겼을때 처리하는 부분으로
col에 부딪친 객체 정보가 들어있다. 이름이다 tag를 통해 조건문을 주어서 원하는 처리하면 되겠다.
단 충돌 대상에 Collider 컴포넌트가 추가되어 있어야 한다.
여기까지 보면 게임 구현에 필요한 기본적인 요소가 있다. 이동, 충돌처리 이것만 되어도 기본적인 게임은 만들수 있음...
step5와 6이 구현된 프로젝트 입니다.
'Code Archive > Unity3D' 카테고리의 다른 글
| step5. Mouse Peeking (0) | 2015.03.06 |
|---|---|
| step4. 객체 움직이기 및 회전 (0) | 2015.01.06 |
| step2. 소스코드에서 MonoBehaviour 생명주기 (0) | 2015.01.05 |
| step3.간단하게 캐릭터 움직이기 (0) | 2015.01.05 |
| step1. 유니티 화면 설명 (0) | 2015.01.05 |
gunshot.unitypackage