저번 글에 이어서 직렬화를 완성시켜보도록 하겠습니다.
먼지 직렬화란, 개체를 저장 또는 전송하기 위해서 변환을 하는 과정을 말합니다.
간단히도, 대괄호안에 System.Serializable만 추가를 해주시면 직렬화를 완성할 수 있습니다.
이 과정을 거치고 나면 이제 스폰 데이터를 인스팩터창에서 확인하실 수 있습니다.
그 뒤 게임창에서 각 몬스터들의 스팩을 조정해줄 수 있습니다.

또한 코드를 이상태로 계속 진행할 경우에는 list rangeout오류가 뜨게 되는데, 이 오류도 고쳐보도록 하겠습니다.
먼저 spawner에 가서 레벨과 관련된 부분을 고쳐줍니다.
mathf에 있는 min을 이용해서, 스폰 데이터에 넣어놓은 만큼만 갈 수 있게 만들었습니다. 이제 유니티에서 다시 게임을 실행해보면 레인지아웃이 나타나지 않는것을 알 수 있습니다.
이제 레벨에 따른 소환시스템은 완성했습니다! 이어서 근접무기를 구현해보도록 하겠습니다
먼저 태그 bullet을 만들어줍니다.
그 뒤 미리 만들어져있는 asset에서 삽모양 에셋을 끌어다 넣어주고 다음과 같은 코드를 짜줍니다.
enemy 스크립트의 아래쪽에 다음과 같은 코드를 추가해줍니다! 적과충돌시에 발생하도록 하고, 무기의 데미지만큼 적의 데미지가 깎이도록 만들어 줄 것 입니다. 체력이 0보다 큰 상태이라면 충돌 효과를 넣어줄 예정이고, 충돌 시 체력이 0보다 같거나 작다면 죽도록 만들겠습니다.
DEAD함수의 경우에는 오브젝트가 비활성화되게 하였습니다.
저같은 경우는 bullet 태그를 넣지 않아서 작동이 되지 않았었으니 유의해주세요!
그 뒤 삽이 자동으로 생성되도록 바꿔보도록 하겠습니다.
먼저 유니티에서 만들어놓은 bullet 오브젝트들을 지워줍니다. 이미 프레팹 폴더에 있으니 걱정하실 필요 없습니다.
그 뒤 weapon이라는 코드를 새로 짜줍니다.
젤 먼저, 여러 변수들을 만들어줍니다. 처음 시작했을 때는 Init 함수를 시작할 수 있게 해줍니다. Init 함수에선 switch 문을 짜서 id에 따라 다른 반응을 하도록 만들어줍니다. 저 아이디는 추후에 무기의 종류가 될 예정입니다.
Batch함수는 무기를 만들어서 놓아주는 역할을 하게 될 것인데요, 위에서 만든 count 변수가 무기의 숫자가 될것입니다.
count만큼 for문을 돌려서 무기가 배치되도록 할것이고, Init에서 -1이 되어있는 부분은 근접무기이기에 관통되는 적의 숫자를 -1로 해놓아 무한대로 관통된다는것을 표현해놓았습니다.
이제 무기 배치 뒷부분은 다음글에서 이어서 해보도록 하겠습니다!
이 글은 아래의 영상을 따라하는 과정을 기록하기 위한 글입니다. 궁금하신 점이 있다면 아래의 영상을 참고 바랍니다!
'유니티 > 뱀서라이크' 카테고리의 다른 글
| 뱀서라이크 따라하기 - 원거리 무기 만들기 (0) | 2023.08.02 |
|---|---|
| 뱀서라이크 따라하기 - 근접 무기 만들기 (0) | 2023.08.01 |
| 뱀서라이크 따라하기 - 오브젝트 풀링 2번째 (0) | 2023.07.30 |
| 뱀서라이크 따라하기 - 오브젝트 풀링 1 (0) | 2023.07.29 |
| 뱀서라이크 따라하기 - 적 구현하기 2편 (0) | 2023.07.28 |