}

유니티 Fusion2 RPC - InvokeLocal 초간단 정리

 

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회 실행
        // 호출자가 권위자가 아니면: 권위자 쪽에서 실행
    }
}
 

언제 쓰면 좋을까요?

  1. 바로 반응 필요할 때(권위자인 내가 호출할 때).
  2. 이펙트/사운드 등 체감 지연을 최소화하고 싶을 때(상태 변경은 권위자만 하도록 분리 권장).