이번에는 곡괭이로 블록에 피해를 주는 시스템을 만들어 보았습니다
먼저 블록들이 가질 데이터를 만들기 위해 스크립터블 오브젝트를 사용해줍니다
SO에는 블록이름, 최대블록경도(체력), 드랍아이템 필드가 있습니다
이 SO를 블록프리팹에 할당해줍니다
이제 채광가능한 블록들이 공통적으로 가질 MinableBlock을 작성합니다
현재 체력을 SO의 최대체력으로 초기화합니다
또한 프로퍼티를 사용해 값이 변할때마다 블록의 체력이 0보다 작거나 같은지 검사합니다
만약 작거나 같다면 BlockBreak함수를 통해 블록이 부서질때 로직을 실행시켜줄 계획입니다
데미지를 주는 기능은 OnDamage를 통해 해줍니다
채광당하는 스크립트를 만들었으니 채광하는 스크립트를 만들어보겠습니다
먼저 ray를 쏴서 블록을 검사하는 기능을 이 스크립트로 옮겨왔습니다
Mining 메소드는 ray를 통해 블록을 검출하고 채광가능한 블록이면
IsMinable을 참으로, 검출한 블록의 스크립트를 반환합니다
이제 Update메소드에서 IsMinable이 참이고 마우스 좌클릭을 했을때 MinableBlock스크립트의 OnDamage를 실행합니다
이때 매개변수로 곡괭이의 파워를 전달합니다
정상적으로 작동합니다
댓글 0