IPunObservable
IPunObservable은 Photon 에서 변수 값을 자동으로 동기화하기 위한 인터페이스이다.
RPC 처럼 이벤트로 호출하는 방식이 아니라, 값 자체를 계속 보내는 방식이다.
- Photon Engine 에서 제공하는 변수 동기화 인터페이스
- Photon View 가 붙은 오브젝트에서 사용
- 네트워크 프레임마다 값을 보내고 받는 구조
Transform 동기화의 내부 원리와 동일하다
언제 사용하는가?
계속 변화는 상태 값에 적합하다.
- 체력
- 점수
- 상태 값 ( Idle / Move / Attack )
- 방향 ( direction )
- 충전 게이지 , 쿨타임 수치
한 번만 알려주면 되는 이벤트는 RPC 가 더 적합하다.
▼ 인터페이스 구현
using Photon.Pun;
public class PlayerStatus : MonoBehaviour, IPunObservable
{
public int hp;
public void OnPhotonSerializeView(
PhotonStream stream,
PhotonMessageInfo info)
{
if (stream.IsWriting)
{
// 내 값 → 네트워크로 전송
stream.SendNext(hp);
}
else
{
// 네트워크 → 내 값 수신
hp = (int)stream.ReceiveNext();
}
}
}
동작 흐름
- Owner ( IsMine )
- Stream.SendNext()
- Photon Server
- Other Clients
- Stream.ReceiveNext()
소유자만 Write
나머지는 Read 전용
정리
IPunObservable은 계속 변하는 변수를 자동으로 네트워크 동기화하는 방식이다.
'🌍Network' 카테고리의 다른 글
| Firebase (0) | 2026.01.08 |
|---|---|
| RPC ( Remote Procedure Call ) (0) | 2026.01.07 |
| Photon View (0) | 2026.01.07 |
| Photon Lobby & Room (0) | 2026.01.07 |
| 네트워크 기초 (0) | 2026.01.05 |