[Unity]26.RPG 튜토리얼 #5 - 공격규칙과 타겟 정하기

안녕하세요 유랑입니다.



실력향상을 위해서 오늘도 유튜브 강의를 따라하면서 공부하겠습니다.

궁금하신점 있으시면 댓글로 남겨주세요^^




1. RPG 만들기



이번 강의는 Patreon.com에서 외국인이 만든 강좌이며,

매달 $5의 후원을 통해야 리소스 다운을 받을 수 있습니다.

저는 돈을 지불하였고, 스킬업을 위해서 복습겸 글을 올리겠습니다.


리소스 사이트 => https://www.patreon.com/inScopeStudios/posts

유튜브 사이트 => https://goo.gl/o5VcTv







2. 공격 규칙



마법사가 공격을 할 때 적이 있든 없든 공격하는건 자유입니다.

하지만 여기서는 공격의 규칙을 주어서, 적이 눈 앞에 있을 때만 공격이 가능하도록 구현하겠습니다.



2-1) 충돌 체크를 위한 블럭 배치



상단에 위치한 Assets => Create => Sprites => Square를 생성해 주세요.






Player 밑으로 빈오브젝트를 생성한 후 이름을 Blocks로 변경해 주세요.

Blocks에는 Square를 이용해서 네 개의 벽을 만들겠습니다.





벽의 이름은 TopRight, TopLeft, BottomLeft, BottomRight로 만들어 주세요.

위치와 회전, 스케일값은 그림을 참고해주세요^^










2-2) 충돌 체크 후 발사



Block 스크립트는 MonoBehavior를 상속받지 않았기에 Serializable을 이용해서

노출시켜 주었습니다.

스크립트 내용은 해당 위치의 벽을 활성화, 비활성화 시켜줍니다.






Player 스크립트에는 아까 만든 Block을 이용해서 스펠을 발사하기전 벽을 생성한 후,

Raycast를 통해서 발사여부 확인 후 스펠을 발사하게 됩니다.

블럭들은 블럭레이어로 설정해줄거기에 Debug.Log를 이용해서 확인도 가능합니다.

(Sprite Renderer를 비활성화하면 보이지 않으므로)















블럭들은 밑쪽, 왼쪽, 위쪽, 오른쪽 순으로 연결해 주세요.

밑에 그림을 참고하시면 됩니다.





블럭들은 다음과 같이 설정해 주세요.

레이캐스트와 벽돌의 충돌 여부를 확인하기 위해서 별돌의 Layer도 설정해 주었습니다.


- Block 오브젝트들 비활성화 => TopRight, TopLeft, BottomLeft, BottomRight

- Sprite Renderer 비활성화

- Box Collider 2D 추가 후 Is Trigger 체크

- Layer => Block








3. 타겟 정하기



3-1) 수동으로 타겟 정하기



마우스 클릭을 이용해서 타겟을 선택하도록 하겠습니다.

Player 스크립트에서 Target 부분을 다음과 같이 수정해 주세요.

Start()에서 target = GameObject.Find("target");은 삭제하였습니다.










GameManager 스크립트를 생성해 주세요.

마우스 버튼을 클릭하면 Enemy라는 태그를 가지고 있는 오브젝트와 충돌 했을시 Target이라고 지정됩니다.





빈 오브젝트를 생성 후 GameManager로 이름을 변경한 뒤 스크립트를 추가해 주세요.

Player는 public으로 되어있으므로 드래그앤 드랍을 이용해서 

해당 스크립트를 가지고 있는 Player를 넣어 주겠습니다.





target(스켈레톤)에게는 Tag와 Layer BoxCollider 2D까지 추가해 주세요.





이제 스켈레톤을 클릭하지 않으면 Player는 공격을 할 수 없습니다.






4. 마무리



오늘 강의는 여기까지입니다.

RPG 튜토리얼을 따라하면서 공격규칙과 마우스를 이용한 타겟도 정해보았습니다.

다음 시간에는 스킬 퀵 슬롯과 스킬 피격에 대해서 알아보겠습니다.

감사합니다.




수업자료: https://github.com/YouRang12/-Tistory-Unity---Extra-2D-

댓글

Designed by JB FACTORY