NetworkView
- Observed 된 컴포넌트의 정보를 실시간으로 송수신하여
온라인상의 다른 유저에게 해당 객체의 상태를 동기화시킴.
- Observed 속성을 스크립트 컴포넌트로 지정시
해당 스크립트의 OnSerializeNetworkView() 함수가 정의되어있어야하며
이 콜백 함수에서 데이터를 송수신하여 동기화.
- OnSerializeNetworkView 함수가 호출되는 주기는
Editor - Project Settings - Network 의
Sendrate 속성으로 조절할 수 있음.
※ Sendrate - 초당 패킷 전송 횟수.
Inspector
==============================================================================================
State Synchronization
==========================================================================
Off
=> 실시간 데이터 전송을 하지 않음.
Reliable Delta Compressed
=> 데이터 유실 X.
=> 패킷의 전송 순서 보장.
=> 패킷 전송 실패시 재전송.
=> TCP/IP로 보면 되는듯..
Unreliable
=> 데이터 유실이 발생할 수 있음.
=> 빠른 전송속도 보장.
=> UDP로 보면 되는듯...
==========================================================================
Observed
==========================================================================
송수신할 컴포넌트 지정.
기본값은 NetworkView가 추가된 오브젝트의 Transform이 설정됨.
==========================================================================
View ID
==========================================================================
읽기 전용 속성. 실행시 자동으로 ID 부여.
==========================================================================
==============================================================================================
원격 프로시저 호출(RPCs - Remote Procedure Calls)
- 다른 디바이스의 함수를 호출하는 기능
.
- RPC 함수 호출시 네트워크를 통해 다른 유저의 스크립트에서 해당 함수 호출.
- RPC 함수 정의는 [RPC] 어트리뷰트를 함수 앞에 명기해야함.
ex)
[RPC]
void Chat(string chat)
{
...
}
- RPC를 호출할려면 해당 스크립트가 게임오브젝ㅌ의 NetworkView 컴포넌트가
추가되어 있어야함.
- RPC 함수는 세개의 인수를 제공.
=> 첫번째 인수 - 호출할 함수명
=> 두번째 인수 - RPCMode 선택
==========================================================================
RPCMode.Server - Server Client에 RPC 호출
RPCMode.Others - 자신을 제외한 다른 모든 유저의 RPC 호출
RPCMode.Othersbuffered - RPCMode.Others와 동일. 버퍼에 저장 후 나중에 접속한 유저에게도 RPC 호출.
RPCMode.All - 자신을 포함한 다른 모든 유저의 RPC 호출
RPCMode.AllBuffered - RPCMode.All과 동일. 버퍼에 저장 후 나중에 접속한 모든 유저에게도 RPC 호출.
==========================================================================
=> 세번째 인수 - 파라미터
=> int, float, string, NetworkPlayer, NetworkViewID, Vector3, Quaternion 타입을 전달할 수 있음.
'프로그래밍 정리 > Unity' 카테고리의 다른 글
[Unity - 유니티] CharacterController 컴포넌트 (0) | 2014.06.08 |
---|---|
[Unity - 유니티] Network 클래스 제공 콜백함수 (0) | 2014.06.08 |
[Unity - 유니티] Application 클래스 - Scene병합, 로드 등 (0) | 2014.06.08 |
[Unity - 유니티] SendMessage 함수 - 여러 개의 파타미터 던지기 (1) | 2014.06.06 |
[Unity - 유니티] StopAllCoroutine - 모든 코루틴함수 정지. (0) | 2014.06.06 |