삽질 잔뜩 하다가 알아낸 정보들 (공식 문서에도 적혀 있긴 할텐데 스스로 하기 전까진 이해가 잘 안 갔음)
Simulation Behaviour
- static RPC만 존재 가능
- 일반 RPC를 작성하면 Weaving Error 발생
Network Behaviour
- 일반 RPC, static RPC 존재 가능
- 해당 스크립트가 부착된 오브젝트에 Network Object 컴포넌트 필요
이때, Network Object는 런타임 전에 씬에 이미 존재하고 있거나, 런타임 중 Spawn()해야만 valid함.
- 따라서, 일반 RPC는 Spawn한 오브젝트의 Network Behaviour 스크립트에서만 작성 가능함.
- 특히, RPC를 호출하는 스크립트가 런타임에서 어떤 오브젝트에 붙어있지 않으면 호출이 되지 않음
(예시 : Test.cs 스크립트의 RPC_ABC()를 호출하려는데, Test.cs 스크립트가 씬 내 어떤 게임 오브젝트의 컴포넌트로 존재해야 RPC_ABC()를 호출할 수 있음)
- 따라서, RPC를 모아놓는 Network Behaviour를 하나 만들고, 스폰할 오브젝트에 붙여놓기
- RPC가 활용할 변수들은 다른 Simulation/Network Behaviour 에 있어도 OK 인 듯
요약 :
Photon Fusion 에서 RPC를 사용하려면?
-> Network Behaviour 스크립트에서 작성하기.
-> Spawn할 오브젝트에 스크립트 부착되었을 경우에만 호출 가능