< Return to Video

TANKS! Unity Tutorial - Phase 5 of 8 - Shells

  • Not Synced
    이번 페이즈에서 우리는 이 포탄
  • Not Synced
    프리팹을 만들 것입니다. 이것은 보시는 것 처럼 생겼고
  • Not Synced
    여러개의 서로 다른 컴포넌트를 가지고 있죠
  • Not Synced
    콜라이더를 가지고 있고, 리기드 바디도, 라이트 컴포넌트도 가지고 있네요.
  • Not Synced
    그리고 이걸 가지고 하고자 하는건,
  • Not Synced
    탱크에서 이것을 발사한 다음에, 포탄으로서의 일을 하기 위해서
  • Not Synced
    주위를 덮어씌우는 구를 가지는데요
  • Not Synced
    데미지를 주는 일종의 구를 만들어서
  • Not Synced
    착탄 지점 근처에 있는 탱크들에게 데미지를 줄수 있게 합니다.
  • Not Synced
    그러니 이번 비디오에서는, 지금 제가 이걸 움직여서 천천이
  • Not Synced
    탱크에 좀더 가까이 두고 보면
  • Not Synced
    포탄이 가까울 수록 체력이
  • Not Synced
    더 줄어드는 걸 볼수 있죠.
  • Not Synced
    바로 지금 확인해볼수 있겠죠.
  • Not Synced
    이걸 좀더 가까이 해보면
  • Not Synced
    가까이 갈수록 더 많은 데미지가 들어가네요.
  • Not Synced
    당연하게도, 탱크 바로 위를 때려버리면
  • Not Synced
    엄청난 데미지를 줄겁니다
  • Not Synced
    이것이 바로 다음 페이즈 동안 우리가 만들 포탄입니다
  • Not Synced
    실제 슈팅에 대한 부분을 처리한 다음에요
  • Not Synced
    하지만 먼저, 우리는 데미지를 처리해줘야 합니다
  • Not Synced
    아니면 전에 우리가 작성한 TankHealth 스크립트에다
  • Not Synced
    데미지를 전달해줄 녀석을 만들어주어야죠.
  • Not Synced
    좋아요 여러분들이 해줄일은 먼저
  • Not Synced
    Models 폴더로 가서, 이 폴더에서
  • Not Synced
    Shell 이라는 모델을 찾아주세요
  • Not Synced
    선택해보면 인스펙터에 이렇게 보일거에요
  • Not Synced
    참고로, 뭔가 인스펙터로 관찰중일 때는
  • Not Synced
    이렇게 그냥 드래그 해넣어 프리뷰 창에서 둘러볼 수 있습니다.
  • Not Synced
    인스펙터의 바닥에 있죠.
  • Not Synced
    그래서 이제 이것을 하이라키로 드래그합니다
  • Not Synced
    모델을 프로젝트에서
  • Not Synced
    가져와 하이라키로 드래그 앤 드롭 했다면
  • Not Synced
    마우스 커서를 씬 뷰 위에다가 놓고
  • Not Synced
    F 를 눌러 선택된 프레임으로 가보세요
  • Not Synced
    그러면 대략적으로 원점에 위치하고 있단걸 알겁니다
  • Not Synced
    그러니까 0 근처라는 건데
  • Not Synced
    저는 이걸 드래그해서
  • Not Synced
    위로 어딘가에 좀 올릴게요. 그래야
  • Not Synced
    이걸 눈으로 보면서 작업하죠. 이게 더 낫네요.
  • Not Synced
    기억할 것은, 우리가 프리팹을 만드는데
  • Not Synced
    탱크가 발사할 녀석이라서 게임이 시작될 때
  • Not Synced
    씬에 남아 있으면 안되요.
  • Not Synced
    그러니 탱크와 마찬가지로 (나중에 지울테니까)
  • Not Synced
    당장 어디에다 위치해 놨는지는 상관 하지 않아도 되요.
  • Not Synced
    그러니 이제 우리는 다른 오브젝트와
  • Not Synced
    상호작용할 무언가를 만들건데
  • Not Synced
    이것은 콜라이더가 필요합니다.
  • Not Synced
    우리는 primitive(기본형태) 콜라이더들을 사용합니다. 왜냐면
  • Not Synced
    이들은 간단하고 성능이 좋거든요. 그리고 여기 형태는
  • Not Synced
    우리는 캡슐 콜라이더를 사용할겁니다.
  • Not Synced
    그러니 포탄이 아직 선택된 상태에서
  • Not Synced
    인스펙터에서 Add Component 버튼을 누르고
  • Not Synced
    Caps 만 검색해보면
  • Not Synced
    Capsule 에 대해서 뜨는데
  • Not Synced
    Confirm 까지 계속 클릭하거나 리턴(엔터키)를 누르세요.
  • Not Synced
    캡슐 콜라이더를 가지고,
  • Not Synced
    어떤걸 발사하려고 할때는요
  • Not Synced
    우리가 지금 쓰는 발사체(투사체;Projectile) 같은 걸 말이죠,
  • Not Synced
    이러한 물건들이 다른 곳으로 튕겨나가길 원치도 않고
  • Not Synced
    이 탱크 포탄이 어떤곳에 부딫쳐선
  • Not Synced
    그걸 밀어내버리는 것도 원치 않습니다.
  • Not Synced
    우리는 이것이 어떤것에 부딫치면
  • Not Synced
    스크립트에서 콜백을 만들고 그 다음
  • Not Synced
    폭발 힘 을 만들길 윈해요.
  • Not Synced
    그러니, 우리는 어떠한 물리적인 반응작용도 원하지 않아요.
  • Not Synced
    그래서 우리가 그런걸 원하지 않을 때는, 트리거 라는 것을 쓰면 됩니다.
  • Not Synced
    누군가 트리거 라는 것에 말할때는
  • Not Synced
    아니면 트리거 존 이라던가
  • Not Synced
    아니면 트리거 영역 이라는 말은, 그 사람이 말하는 것은
  • Not Synced
    콜라이더인데 트리거 체크가
  • Not Synced
    된 것을 말해요.
  • Not Synced
    그러니 IsTrigger 체크박스를 체크 한다면
  • Not Synced
    이것이 기본적으로 의미하는 바는,
  • Not Synced
    여기에 단단한 표면이라는 것이 존재하지 않아서
  • Not Synced
    그냥 통과가 가능한데, 대신에
  • Not Synced
    스크립트로 이런 식으로 콜백을 보냅니다.
  • Not Synced
    '나는 지금 다른 트리거에 진입했어' 라거나
  • Not Synced
    '나는 다른 콜라이더에 들어왔어' 라는 식으로요.
  • Not Synced
    그러니 대게 트리거는 게임의
  • Not Synced
    문 같은 곳에서, 커다란
  • Not Synced
    육면체 콜라이더를
  • Not Synced
    입구로 놓아두면, 캐릭터가 그쪽으로 들어오려 할때
  • Not Synced
    자동으로 문이 열리게 할수 있죠.
  • Not Synced
    대게 이런 방법이 콜라이더를 쓰는 고전적인 방법입니다.
  • Not Synced
    일단 이 컴포넌트를 추가했다면, 다음으로는
  • Not Synced
    이걸 세팅을 해줘야 해요
  • Not Synced
    그래서 우리는 중심을 바꿔주어야 하는데
  • Not Synced
    Center 값을 (0,0,0.2) 로 해주세요.
  • Not Synced
    반지름 Radius 는 (0.15) 로요.
  • Not Synced
    높이 Height 는 (0.55) 로 해주세요.
  • Not Synced
    중요한 점은, 틀린 방향으로 되어있단게
  • Not Synced
    보일텐데, 그러니 direction 을
  • Not Synced
    Z 축으로 변경해줘야 합니다. 그러면
  • Not Synced
    이제 나름 이쁘게 우리의 포탄과 완벽히 맞추어 지네요.
  • Not Synced
    아니면 최소한 문제 없을 정도로는 비슷하게 맞추어졌죠.
  • Not Synced
    이렇게 보여야 합니다.
  • Not Synced
    그 다음에는 마지막으로 이것은 물리적인 오브젝트 이기에
  • Not Synced
    우리는 이것을 물리 엔진이
  • Not Synced
    제어하게 해야 합니다. 그러면 우리가 뭘 더해야 하죠?
  • Not Synced
    리기드 바디죠. 여기 멋지게.
  • Not Synced
    여기 우리 리기드바디 컴포넌트를 추가했습니다.
  • Not Synced
    이제 준비가 됬군요.
  • Not Synced
    그래서 이 포탄들이 우리가 발사하게 될
  • Not Synced
    발사체 들인데, 이들이 그냥 직선으로 바로 날아가선 안됩니다.
  • Not Synced
    시간에 따라 중력에 의해 떨어져야죠.
  • Not Synced
    그래서 일단 두 부분을 잠시 다시보기 하죠.
  • Not Synced
    우리는 Models 폴더에서 Shell 이라는 이름의 모델을 찾습니다.
  • Not Synced
    하이라키 위에 이것을 드래그하구요.
  • Not Synced
    우리는 캡슐 콜라이더 컴포넌트를 포탄에 추가했습니다.
  • Not Synced
    그리고 이것이 트리거가 되도록 해주어서
  • Not Synced
    트리거로서 부딫쳐 튕겨돌아다니지 않게 해주었죠
  • Not Synced
    물체들을 통과하여 그대로 주욱 날아가선
  • Not Synced
    바로 그러자마자 스크립트를 통해 파괴되야 합니다
  • Not Synced
    우리가 작성할 것이죠
  • Not Synced
    우리는 이러한 경우 IsTrigger 를 체크합니다
  • Not Synced
    그리고 방향을 Z 축으로 설정하죠
  • Not Synced
    그리고 Centre 를 바꿨는데, Centre 란
  • Not Synced
    기본적으로 원점을 어디에 두냐라서
  • Not Synced
    아트 모양에 맞추기 위해 콜라이더에 오프셋을 주죠
  • Not Synced
    그리고 radius 은 0.15 로 주었죠. 캡슐의 반지름 말이에요.
  • Not Synced
    그리고 높이는 0.55 를 주엇습니다.
  • Not Synced
    그리고 리기드 바디를 붙였습니다. 그래서
  • Not Synced
    물리 엔진의 지배하에 놓으려구요.
  • Not Synced
    그리고 여기 포탄을 얻었네요
  • Not Synced
    지금은 포탄이 추락하는 건 되는데
  • Not Synced
    정말 아무것도 일어나지 않습니다.
  • Not Synced
    그저 바닥을 그대로 통과해버리죠
  • Not Synced
    왜냐면 아무것도 이것을 막지 않기 때문이죠.
  • Not Synced
    아까 말했듯이 물리적으로 실존하지 않아요.
  • Not Synced
    이런 식은 원하지 않아요. 우리는 실제로
  • Not Synced
    폭발하고 어떤 일을 해주고 싶습니다. 그러니 우리는
  • Not Synced
    포탄 폭발 Shell Explosion 을 당신을 위해 만들어 두었습니다.
  • Not Synced
    그러니 Prefabs 폴더로 가보면,
  • Not Synced
    ShellExplosion 이라는 프리팹을 발견할겁니다.
  • Not Synced
    그래서 이걸 가지고 우리가 할게 뭐냐면
  • Not Synced
    이걸 포탄의 자식으로 만들어주세요
  • Not Synced
    그러니 프리팹 폴더에서 드래그 해서
  • Not Synced
    포탄 위로 드래그하면 됩니다
  • Not Synced
    그러면 이렇게 보일거에요
  • Not Synced
    이걸 시뮬레이트 해보면
  • Not Synced
    이렇게 보일겁니다.
  • Not Synced
    시간에 따라 먼지 구름이 생겨나죠.
  • Not Synced
    좋아요. 이제 우리가 해야할 남은
  • Not Synced
    유일한 일은
  • Not Synced
    오디오 소스를 더해줘야 합니다
  • Not Synced
    그러니 탱크 폭발 때와 비슷하게
  • Not Synced
    이것은 비주얼 이펙트와 오디오 이펙트를 가져야 합니다.
  • Not Synced
    그러니 우리는 Add Component 버튼을 그냥 눌러주면 됩니다
  • Not Synced
    그리고 Audio Source 를 선택할거에요.
  • Not Synced
    그리고 나서, 이전에 우리가 한것 처럼
  • Not Synced
    우리는 오디오 클립이 필요하고, 그래서 저는
  • Not Synced
    audio clip 옆의 동그라미 버튼을 눌러
  • Not Synced
    ShellExplosion 을 선택하여 할당해줄겁니다.
  • Not Synced
    이제 우리는 포탄이 초기화 되자 마자 혹은
  • Not Synced
    폭발이 보이자마자 바로 재생되는걸 원치 않기에
  • Not Synced
    우리는 Play On Awake 를 체크 해제 해줍니다.
  • Not Synced
    그래서 잠시 빠른 다시보기, 우리는 ShellExplosion 프리팹을 가지고
  • Not Synced
    포탄 게임 오브젝트의 자식으로 넣어주었습니다.
  • Not Synced
    그러면 이 녀석은 포탄과 함께 움직일 것이고, 무언가에
  • Not Synced
    부딫쳤을때 자기 할일을 해줄겁니다.
  • Not Synced
    우리는 여기다가 오디오 소스를 붙여주었습니다.
  • Not Synced
    그래서 사운드를 재생할수 있게요. 우리는 동그라미 선택
  • Not Synced
    버튼으로 ShellExplosion 으로 오디오 클립을 지정해주었습니다.
  • Not Synced
    우리는 이것이 게임 월드에 생겨나자 마자
  • Not Synced
    바로 플레이 되는 것을 원치 않습니다. 우리는 그저
  • Not Synced
    충돌을 할때만 재생하고 싶으니 Play On Awake 체크를 해제합니다.
  • Not Synced
    좋아요. 마지막으로 포탄에 해줘야 할일은
  • Not Synced
    부모 오브젝트인 포탄을 다시 눌러주고
  • Not Synced
    라이트를 더해줍니다.
  • Not Synced
    그래서 게임판 위를 날아다닐 때
  • Not Synced
    우리는 이것이
  • Not Synced
    주변 환경을 밝게 비추게 하려는 겁니다.
  • Not Synced
    그리고 포탄을 구별하기도 편하죠. 왜냐면 명백히도
  • Not Synced
    황금색 포탄을 가지고 있고, 주황색 모래가 깔려 있으니
  • Not Synced
    구별하기 힘듭니다. 거기에 라이트가 더해지면서 구별하기 좋아지죠.
  • Not Synced
    그래서 Point 라이트 게임 오브젝트를 만드는 것 대신에
  • Not Synced
    그냥 같은 라이트를 간단하게 더해줄수 있습니다.
  • Not Synced
    그래서 만약 당신이 유니티에 처음이라면,
  • Not Synced
    Game Object - Create 로 가보면
  • Not Synced
    이미 만들어진 프리팹화된, 몇몇 컴포넌트들을 가진
  • Not Synced
    오브젝트들이 미리 다 있다는게 보일겁니다.
  • Not Synced
    그래서 예를 들어, 만약 당신이 선택하는데,
  • Not Synced
    큐브가 있다 치면, 당신은
  • Not Synced
    수많은 다른 컴포넌트들이 여기 달려 올겁니다.
  • Not Synced
    하지만 당신은 그저 라이트 컴포넌트를 여기다 붙여서
  • Not Synced
    라이트를 생성할 수도 있죠.
  • Not Synced
    우리는 그럴 필요는 없습니다. 우리는 그저 포탄위에
  • Not Synced
    바로 컴포넌트를 붙일거에요,
  • Not Synced
    그래서 Add Component - Light 해줍니다.
  • Not Synced
    좋아요, 이제 실제로 어떻게 동작할지
  • Not Synced
    어떻게 이것이 충돌할지, 탱크와 충돌할땐 무엇을 할지
  • Not Synced
    아니면 환경에 충돌했을 때, 그리고
  • Not Synced
    게임에서 다른 탱크들에 어떻게 힘을 줄지
  • Not Synced
    이들을 제어해줘야 합니다.
  • Not Synced
    그러니 이제 우리가 할일은,
  • Not Synced
    Scripts 폴더로 들어가서 그리고
  • Not Synced
    Shel l폴더를 찾습니다.
  • Not Synced
    거기서 우리는 ShellExplosion 이라는 스크립트를 찾습니다.
  • Not Synced
    그러니 우리는 ShellExplosion 을 드래그 앤 드롭해서
  • Not Synced
    하이라키의 포탄 게임 오브젝트에 붙입니다.
  • Not Synced
    그리고 나면 우리가 방금 까지 더해온
  • Not Synced
    다른 모든 것들 처럼, 리기드바디
  • Not Synced
    캡슐 콜라이더와 라이트에 이어
  • Not Synced
    Shell Explosion (스크립트) 를 가지게 되었습니다.
  • Not Synced
    그리고 나서 이것을 더블클릭하여 편집하기 위해 엽니다.
  • Not Synced
    좋아요. 이제 여기서 우리는 어떠한 private 변수도
  • Not Synced
    없는데, 하지만 우리는 여러개의 public 들을 가지네요.
  • Not Synced
    그래서 첫번째는 레이어 마스크 입니다.
  • Not Synced
    트레이닝 데이의 초반에 모든 탱크에
  • Not Synced
    Players 레이어를 붙인게 기억 날수도 있습니다.
  • Not Synced
    이게 의미하는 바는, 우리가 폭발
  • Not Synced
    을 포탄에서 일으킬때 우리는
  • Not Synced
    Players 레이어인 모든 것들만 체크한다는 겁니다. 그리고
  • Not Synced
    어떤 탱크에다 부딫쳤는지 보는거죠. 모든 것에다가 영향을 주는게 아니라.
  • Not Synced
    그래서 이것은 인스펙터에서 설정 가능합니다.
  • Not Synced
    여기서 우리는 영향을 미치고 싶은 레이어를 선택하죠.
  • Not Synced
    그 다음은 폭발 파티클입니다.
  • Not Synced
    우리가 그것을 자식 게임 오브젝트로 드래그 해 넣은것을 기억하세요.
  • Not Synced
    우리는 그것의 레퍼런스를 가져와서, 그래서
  • Not Synced
    포탄이 폭발할때 파티클을 재생할수 있도록 할겁니다.
  • Not Synced
    이전의 것들과 같이, 오디오 소스의 레퍼런스가 있고,
  • Not Synced
    그래서 이걸로 오디오 소스의 레퍼런스를 가져와서
  • Not Synced
    사운드를 재생할수 있죠.
  • Not Synced
    그리고 나면 여기 많은 float 들이 있는데요
  • Not Synced
    첫번째 녀석은
Title:
TANKS! Unity Tutorial - Phase 5 of 8 - Shells
Description:

more » « less
Video Language:
Korean
Duration:
32:02

Korean subtitles

Incomplete

Revisions