Fusion 2 - Remote Procedure Calls | Photon Engine
RPCs (Remote Procedure Calls) are ideal for sharing punctual game events; in contrast [Networked] properties are the go-to solutions for sharing state
doc.photonengine.com
InvokeLocal = true면 RPC를 보낸 그 클라이언트에서 즉시 1번 실행됩니다. (기본값은 true라 따로 설정하지 않아도 됩니다)
내가 StateAuthority(Shared 모드에선 보통 마스터클라이언트)라면, InvokeLocal=true RPC를 호출했을 때 로컬에서 즉시 1회만 실행되고 추가 재실행은 되지 않습니다.
using Fusion;
using UnityEngine;
public class BranchHitController : NetworkBehaviour
{
[Rpc(RpcSources.All, RpcTargets.StateAuthority, InvokeLocal = true)]
public void RPC_Hit()
{
// 호출자가 권위자면: 네트워크 왕복 없이 여기서 즉시 1회 실행
// 호출자가 권위자가 아니면: 권위자 쪽에서 실행
}
}
언제 쓰면 좋을까요?
- 바로 반응 필요할 때(권위자인 내가 호출할 때).
- 이펙트/사운드 등 체감 지연을 최소화하고 싶을 때(상태 변경은 권위자만 하도록 분리 권장).