찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======Network View====== ''Network Views''는 Unity에서 네트워크화된 멀티 플레이어 게임을 생성하기 위해 이르는 길입니다. 그들은 사용하기 쉬우나 강력하게 파워풀 합니다. 이런 이유를 위해 사용자가 사용자가 네트워크 뷰와 함께 실험하는 것을 시작하기 전에 네트워킹하는 것의 뒤의 근본적인 개념을 이해하는 것이 권장됩니다. 사용자는 [[Network Reference Guide]]에서 기본적인 개념을 배우고 발견할 수 있습니다. {{:unity3d:Inspector-NetworkView.png}}\\ //Network View ''Inspector''// 어떠한 네트워킹 능력을 사용하기 위해서 ''State Synchronization'' 또는 ''Remote Procedure Calls''를 포함해서 사용자의 ''GameObject''는 부착된 네트워크 뷰를 가져야만 합니다. =====Properties===== |PROPS |//State Synchronization// |네트워크 뷰에 의해 사용되는 [[unity:net-StateSynchronization|State Synchronization]] 타입 | |>>>//Off// |State Synchronization가 사용되지 않을 것입니다. 이것은 사용자가 오직 [[unity:net-RPCDetails|RPCs]]를 보내기를 원한다면 가장 좋은 선택사항 입니다 | |>>>//Reliable Delta Compressed// |아무것도 바뀌지 않고 보내지지 않을 것이라면 마지막과 현재 상태의 차이는 보내질 것입니다. 이 모드는 명령됩니다. 패킷 로스의 경우에 잃어버린 패킷은 자동적으로 다시 보내질 것입니다 | |>>>//Unreliable// |완전한 상태가 보내질 것입니다. 이것은 더 많은 대역폭을 사용하나 패킷 로스의 영향은 최소화 됩니다 | |//Observed// |네트워크를 통해서 보내질 ''Component'' 데이터 | |//View ID// |네트워크 뷰를 위한 고유한 인식자. 이러한 값들은 인스펙터에서 오직 읽을 수만 있습니다 | |>>>//Scene ID// |이런 특정한 씬에서 네트워크 뷰의 아이디 넘버 | |>>>//Type// |실시간으로 //Scene//에 저장되거나 또는 //Allocated//| =====Details===== 사용자가GameObject에 네트워크 뷰를 추가할 때 사용자는 두 가지를 결정해야 합니다 - 사용자가 원하는 어떠한 데이터를 네트워크 뷰가 보낼지 - 사용자가 그 데이터를 어떻게 보낼지 ====Choosing data to send==== 네트워크 뷰의 //Observed// 속성은 하나의 컴포넌트를 포함할 수 있습니다. 이것은 변환 ''Transform'', ''Animation'', ''RigidBody'' 또는 하나의 스크립트일 수 있습니다. //Observed// 컴포넌트가 무엇이던간에 그것에 대한 데이터가 네트워크를 통해서 보내질 것입니다. 사용자는 선택 박스로 부터 하나의 컴포넌트를 선택할 수 있거나 또는 어떠한 컴포넌트 헤더라도 직접적으로 변수에 드래그 할 수 있습니다. 사용자가 직접적으로 데이터를 보내지 않고 있다면 RPC 콜을 사용해서 사용자는synchronization (어떠한 데이터도 직접 보내지지 않는)을 끌 수 있고 어떤 것도 관찰된 속성으로서 세팅되어질 필요가 없습니다. RPC 콜은 하나의 네트워크 뷰가 필요해서 사용자는 하나의 뷰가 이미 존재한다면 RPC를 위해 특별히 뷰를 추가할 필요가 없습니다. ====How to send the data==== 사용자는 //Observed// 컴포넌트의 데이터를 보내기 위한 2가지의 옵션을 가집니다: ''State Synchronization'' 와 ''Remote Procedure Calls''. State Synchronization를 사용하기 위해서 네트워크 뷰의 //State Synchronization//을 //Reliable Delta Compressed// 또는//Unreliable//으로 세팅합니다. //Observed// 컴포넌트의 데이터는 네트워크를 통해서 자동적으로 보내질 것입니다. //Reliable Delta Compressed//가 정렬되어 집니다. 패킷은 항상 그들이 보내진 순서대로 받게 됩니다. 하나의 패킷을 잃으면 그 패킷은 다시 보내질 것입니다. 모든 이후의 패킷들은 그 이전의 패킷이 받아질 때까지 큐에서 기다리게 됩니다. 마지막 전송 값과 현재 값 사이의 차이만이 보내지고 아무런 차이가 없다면 아무것도 보내지지 않습니다. 하나의 스크립트를 관찰하고 있다면 사용자는 명확하게 스크립트 안에서 데이터를Serialize해야 합니다. 사용자는 //OnSerializeNetworkView()//함수 안에서 이것을 합니다. <file csharp> function OnSerializeNetworkView (stream : BitStream, info : NetworkMessageInfo) { var horizontalInput : float = Input.GetAxis ("Horizontal"); stream.Serialize (horizontalInput); } </file> 스트림으로 쓰는 변수로 부터 업데이트와 읽은 것을 받게 될 때 위의 함수는 항상horizontalInput으로 씁니다 (스크림으로 부터 업데이트). 사용자가 업데이트를 받거나 또는 보낼 때 다른 것들을 하기를 원한다면 사용자는 BitStream 클래스의//isWriting// 속성을 사용할 수 있습니다. <file csharp> function OnSerializeNetworkView (stream : BitStream, info : NetworkMessageInfo) { var horizontalInput : float = 0.0; if (stream.isWriting) { // Sending horizontalInput = Input.GetAxis ("Horizontal"); stream.Serialize (horizontalInput); } else { // Receiving stream.Serialize (horizontalInput); // ... do something meaningful with the received variable } } </file> //OnSerializeNetworkView//는 네트워크 매니저 프로젝트 세팅에서 지정된 //sendRate//에 따라서 불려집니다. 기본적으로 이것은 시간당 15 타임즈 입니다. 사용자가 사용자의 스크립트에서Remote Procedure Calls를 사용하기를 원한다면 사용자가 필요한 모든 것은 스크립트가 부착된 같은GameObject안에 있는NetworkView 컴포넌트 입니다. NetworkView는 다른 것을 위해서도 사용될 수 있거나 또는 그것이 오직 RPCs를 보내기를 위해서만 사용되는 경우에 그것은 관찰된 스크립트를 가지지 않을 수 있고state synchronization도 꺼지게 할 수 있습니다. 네트워크에서 불려질 수 있는 함수는 //@RPC// 속성을 가져야만 합니다. 같은GameObject에 부착된 어떠한 스크립트로 부터도 사용자는Remote Procedure Call을 실행하기 위해서 [[ScriptRef:NetworkView.RPC.html|networkView.RPC()]]를 부릅니다. <file csharp> var playerBullet : GameObject; function Update () { if (Input.GetButtonDown ("Fire1")) { networkView.RPC ("PlayerFire", RPCMode.All); } } @RPC function PlayerFire () { Instantiate (playerBullet, playerBullet.transform.position, playerBullet.transform.rotation); } </file> RPCs는 신뢰성있게 전송되고 순차적으로 됩니다. RPCs에 대한 더 많은 정보를 위해서 [[unity:net-RPCDetails|RPC Details]] 페이지를 살펴주세요. =====Hints===== * 사용자가 네트워크 뷰를 어떻게 사용하는지에 대해 확실하지 않다면 [[Network Reference Guide]] 통해서 읽어보시기 바랍니다. * State Synchronization은Remote Procedure Calls를 사용하기 위해서 비활성화될 필요는 없습니다. * If 사용자가 하나 이상의 네트워크 뷰를 가지고 특정한 것 위에서 하나의RPC를 콜하고 싶다면//GetComponents(NetworkView)[i].RPC()//를 사용하시기 바랍니다. {{tag>유니티 unity}} * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.class-NetworkView|유니티코리아위키]] (CC BY-NC-SA 2.0)
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
유니티3D ( Unity3D )
네트워크 보기들
Reference Manual
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
유니티3D ( Unity3D )
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
a_legacy_forged
[배 빅티스 처리]
hostile_intelligence
[테러모프 보스]
war_relics
[전쟁의 유물 (War relics)]
friends_like_these
[발룬]
divided_loyalites
[제이다]
re-re-application
spacer_scavenger_blattodea
starfield
↷ 링크가 이동 작업으로 인해 적응했습니다
스페이서_스케빈저_블래터디아
↷ 문서 이름이 game:starfield:스페이서_스케빈저_블래터디아에서 game:starfield:spacer_scavenger_blattodea(으)로 바뀌었습니다
고장난_화물선
deserted_trade_authority_starstation
mazoga_the_orc_quest
[(Mazoga The Orc Quest)]
burden_of_the_proof
rook_meets_king
deep_cover
[애들러 캠프]
proxmox_gpu
embryo_transfer
[3일, 5일]