📌UI 업데이트:
서버에서 점수가 갱신되었을 때 해당 플레이어의 HUD나 인벤토리 정보를 갱신하기 위해 클라이언트 RPC를 사용해 특정 애니메이션이나 효과를 재생할 수 있습니다.
📌개인화된 효과:
플레이어가 피격되었을 때, 서버가 해당 클라이언트에게 화면 깜빡임이나 카메라 흔들림 등 개인적인 피드백을 주기 위해 클라이언트 RPC를 호출할 수 있습니다.
📌알림 및 오류 메시지:
서버가 특정 행동(예: 불법 행동이나 제한된 행동)을 감지하여, 해당 플레이어에게만 경고 메시지나 팝업 창을 띄워야 할 때 클라이언트 RPC를 이용할 수 있습니다.
📌사운드 및 비주얼 이펙트:
예를 들어, 서버에서 어떤 이벤트(예: 폭발)가 발생하면, 해당 이벤트와 관련된 이펙트나 사운드를 특정 클라이언트에서만 재생하도록 지시할 때 사용됩니다.
📌무기 발사 처리:
상황: 플레이어가 무기를 발사할 때, 클라이언트는 단순히 입력을 보내는 것이 아니라 실제 발사가 가능한지를 서버가 검증해야 합니다.
사용: 클라이언트는 Server RPC를 호출해 "무기 발사 요청"을 보내고, 서버는 이 요청을 검증한 후 발사를 처리(예: 탄환 생성, 충돌 판정 등)합니다.
📌아이템 줍기:
상황: 플레이어가 게임 내 아이템을 주우려고 할 때, 여러 플레이어가 동시에 같은 아이템을 주우려 할 수 있습니다.
사용: 클라이언트는 Server RPC를 통해 "아이템 줍기 요청"을 서버에 보내고, 서버는 아이템이 유효하고 아직 남아있는지 검증 후 처리합니다.
📌문 열기 또는 상호작용:
상황: 플레이어가 문을 열거나 스위치를 작동시키는 경우, 서버는 이 동작을 검증하여 게임 상태를 변경해야 합니다.
사용: 클라이언트가 Server RPC로 "문 열기 요청"을 보내면, 서버가 조건을 확인하고 문을 여는 로직을 실행합니다.
📌스킬 사용 요청:
상황: 플레이어가 스킬을 사용하면, 스킬의 효과나 데미지 계산은 서버에서 결정되어야 합니다.
사용: 클라이언트는 스킬 사용에 대해 Server RPC를 호출하고, 서버가 스킬 효과를 처리한 후 결과를 전체에 복제합니다.
📌채팅 메시지 전송:
상황: 플레이어가 채팅 메시지를 보낼 때, 서버는 메시지 검증(예: 욕설 필터링)을 하고 다른 플레이어에게 전달해야 합니다.
사용: 클라이언트는 채팅 메시지를 보내기 위해 Server RPC를 호출하고, 서버가 메시지를 처리 후 다른 클라이언트로 전달합니다.
📌폭발 이펙트 재생:
게임 내 폭발이나 파괴 이벤트가 발생할 때, 서버는 Multicast RPC를 호출해 모든 클라이언트에서 폭발 파티클, 사운드, 화면 효과 등이 동시에 재생되도록 할 수 있습니다.
📌문 열림 또는 환경 변화:
예를 들어, 게임 내 문이 열리거나 특정 액터의 상태가 변경될 때, 서버는 Multicast RPC를 사용해 그 상태 변화를 모든 클라이언트에 동기화하여 동일한 시각적 효과를 보여줄 수 있습니다.
📌전역 이벤트 알림:
라운드 종료, 보스 등장 등 중요한 게임 이벤트가 발생하면, 서버가 Multicast RPC를 호출하여 모든 플레이어의 화면에 전역 알림이나 UI 업데이트를 표시할 수 있습니다.
📌공격 이펙트와 애니메이션 동기화:
특정 공격이나 스킬 사용 시, 서버는 Multicast RPC를 통해 모든 클라이언트에서 해당 공격의 애니메이션이나 이펙트를 동시에 재생하도록 하여, 플레이어들이 같은 시점을 경험하게 할 수 있습니다.
Multicast RPC는 반드시 서버에서 호출되어야 하며, 클라이언트가 직접 호출하면 로컬에서만 실행됩니다.
주로 시각적, 청각적 효과와 같이 게임 로직에 직접 영향을 주지 않는 이벤트에 사용하는 것이 일반적입니다.
