
Bind Carried AmmoCarried Ammo에 대해서도 바인딩 작업을 해주자. 그리고 로컬 변수로 Carried Ammo 개수에 대한 Text 타입 변수를 만들어 주자. 기존에 만들어둔 Shooter Character를 가져와서 유효성을 체크해준다.그리고 이를 통해 Ammo Map과 Equipped Weapon에 대한 접근이 가능하다.Equipped Weapon은 이어서 Ammo Type에 대해 접근이 가능하고, Ammo Map을 통해서는 FIND 함수를 통해 Ammo Type이 존재하는 지를 체크할 수 있다.Find의 아웃풋은 bool과 integer로 2가지인데 integer 값을 통해 Return text를 세팅하고,bool 값을 통해 Set 가능 여부를 체크하게 된다. Return Tex..

Update AmmoMap이제 AmmoMap을 업데이트 해주는 과정을 만들어주자.먼저 탄창 용량에 대한 변수를 Weapon 클래스에 선언 및 초기화 해주자. 이에 대한 Getter 함수도 생성해주자. 다음으로 FinishReloading() 함수이다.여기서 AmmoMap에 대한 업데이트를 진행하게 된다. 먼저 장착된 무기가 유효한지 체크하고, 해당 무기의 탄약 유형을 확인한다.해당 유형이 AmmoMap에 있는 지를 체크하고, 해당 유형에 대한 총알을 가져오게 된다. 이어서 탄창 용량에서 현재 탄약을 빼서 남은 용량을 체크해준다.이제 남은 용량을 기준으로 AmmoMap을 업데이트 하게 된다. 필요한 부분을 추가적으로 만들어주자.먼저 RealodAmmo() 함수이다. checkf 함수를 이용하여 디버깅을 ..

Reload Continued이어서 리로딩에 대한 작업을 해주자.먼저 기존 ShooterCharacter 클래스의 헤더에 있던 총알 유형에 대한 enum 클래스가 Weapon 클래스에서도 사용해야할 필요가 생겼다.이에 아에 따로 헤더를 생성하여 거기에 총알 유형에 대한 enum 클래스를 선언해주자.Weapon 클래스에서 ShooterCharacter 헤더를 포함시켜도 되긴하지만, 불필요한 내용까지 포함되므로 따로 만들어주자. 그리고 해당 헤더를 포함시켜주면 된다. 새로운 파일이 추가되었으므로 언리얼로 돌아가서 Refresh Visul Studio Code Project를 눌러주자.언리얼에 해당 파일의 존재를 알려줌으로써 인텔리전스 오류가 사라진다. 이제 Weapon 클래스에서 해당 유형에대한 변수 선언 ..

Reload Lecture리로드를 위한 작업을 시작해보자.먼저 액션 매핑부터다 보통 리로딩은 R키를 할당한다. 액션 매핑을 위한 콜백 함수와 바인딩 작업도 해주자. 다음으로 리로드를 위한 함수이다.우선 ECS_Unoccupied 상태가 아니라면 바로 return을 해야할 것이다. 필요한 변수를 더 선언해주자.리로드시 동작할 Montage에 대한 변수가 필요할 것이다. 아직 구현예정인 부분이 존재하여 해당 부분들은 주석으로 표시하였다.우선 구현된 부분만 보면 MontageSection을 불러오고,우리가 불러올 Montage와 AnimInstance가 유효한지부터 체크 해준다.이후 AnimInstance를 통해 Montage를 플레이 및 위의 섹션으로 점프해준다. 해당 함수를 필요한 부분에 호출해주자.저번에..