사람 플레이어 캐릭터에서 맡은 역할과 구현한 기능을 정리.
저주 옮기기와 쿨타임 적용 & 스테미나와 퀵슬롯에 픽업 아이템 이미지 넣기 등에 대해
해당 캐릭터를 소유한 클라이언트에서만 적용되도록 설계
1. 픽업할 아이템과 저주를 옮겨 받을 플레이어를 선택하는 함수
설명 : 박스 콜리전에 액터가 오버랩 되었을 때 아이템 & 플레이어라면 각각의 TSet 자료구조에 저장한다.
그 중 플레이어 카메라와 가장 가까운 액터를 최종 선택된 액터로 선택하고 해당 아이템을 픽업 가능하고 플레이어에게는 저주를 넘겨 줄 수 있다.
2. 아이템 줍기 & 내려놓기 및 달리기 MaxWalkSpeed 동기화
아이템 줍기와 내려놓기에 사용되는 함수들
PickUpDropDown 함수로 먼저 서버에서 해당 플레이어가 아이템을 들고 있는지 확인한다.
아이템을 이미 들고 있다면 MultiCast 로 Detach 하고 손에 아이템이 없으면 PickUp 함수를 호출한다.
Attach 함수
아이템을 손에 있는 소켓에 부착하고 PlayerHUD 의 퀵슬롯의 아이템 이미지를 수정한다.
Detach 함수
아이템을 Detach 하고 UI 를 비롯한 변수들을 전부 초기화한다.
2 - 2 달리기 속도 동기화
달리기 및 속도 동기화에 사용된 함수들
달리기 버튼을 누르고 뗄 때에 호출되는 함수이고 bIsRunning 변수는 Replicated 되어 있기 때문에 서버에서 변경하여 동기화 시켜준다.
실제 이동함수 Move 에서 Server->NetMulticast 로 UpdateSpeed 함수를 호출하여 MaxWalkSpeed 를 동기화
3. 저주 옮기기
F 키 입력 시에 ServerRPC 로 저주를 옮기는 함수를 호출
서버에서 저주를 옮겨 받을 클라이언트와 현재 저주를 가진 플레이어의 상태를 변경
4. 공격 받았을 때 호출되는 함수
괴물에게 공격 받으면 HitMotage 를 실행하고 체력을 깍는다.
사망 시 DieProcess 함수를 호출
사망 시 로컬 클라이언트가 Controller 의 관전자모드로 변경하는 함수를 호출하여 Possess 스위칭한다.
'프로젝트 > Pollute' 카테고리의 다른 글
괴물 플레이어 캐릭터 (0) | 2025.01.11 |
---|---|
언리얼 GPU 시각화 툴을 이용한 최적화 (0) | 2025.01.11 |
피직스 머터리얼을 이용한 사운드 변경 (0) | 2025.01.03 |
컨트롤러 플레이어 캐릭터 빙의 변경 - (사람, 몬스터, 관전자) (0) | 2025.01.03 |
플레이어 블렌드 스페이스 변경 & 속도 동기화 - 스테미나 (1) | 2024.12.13 |