찾기
내용으로 건너뛰기
추적
•
pretty_css_scrollbar
•
getgrav
•
shadertut2
•
inkscape
•
unicode
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======Network Level Loading====== 아래는 멀티 플레이어 게임에서 하나의 레벨을 로드하기 위한 방법의 간단한 예입니다. 그것은 레벨이 로드되어 지고 있는 동안 네트워크 메세지가 처리되는 것이 없음을 확실시 합니다. 그것은 모든 것이 준비될 때까지 어떠한 메세지도 보내지지 않음을 확실시 합니다. 마지막으로 레벨이 로드될 때, 그것은 그들이 레벨이 로드되어 것을 알게 하고 그것에 대응할 수 있도록 모든 스크립트에게 메세지를 보냅니다. //SetLevelPrefix// 함수는 새로이 로드된 레벨로부터 원치 않는 네트워크 업데이트를 막는 것을 돕습니다. 예를 들어 원치 않는 업데이트는 이전 레벨로 부터의 업데이트일지도 모릅니다. 이 예는 또한 게임 데이터를 분리하기 위해 그룹을 사용하고 그룹들에게 커뮤니케이션을 로드합니다. 그룹 0은 게임 데이터 트래픽과 레벨 로딩을 위한 그룹 1을 위해서 사용됩니다. 그룹 0은 레벨이 로딩되어지고 있는 동안 차단되나 그룹 1은 오픈된 상태로 있습니다. 그것은 또한 레벨 로딩동안 오픈된 상태로 있을 수 있기 위해서 채팅 커뮤니케이션을 전달할 수 있습니다. <file csharp> var supportedNetworkLevels : String[] = [ "mylevel" ]; var disconnectedLevel : String = "loader"; private var lastLevelPrefix = 0; function Awake () { // Network level loading is done in a separate channel. DontDestroyOnLoad(this); networkView.group = 1; Application.LoadLevel(disconnectedLevel); } function OnGUI () { if (Network.peerType != NetworkPeerType.Disconnected) { GUILayout.BeginArea(Rect(0, Screen.height - 30, Screen.width, 30)); GUILayout.BeginHorizontal(); for (var level in supportedNetworkLevels) { if (GUILayout.Button(level)) { Network.RemoveRPCsInGroup(0); Network.RemoveRPCsInGroup(1); networkView.RPC( "LoadLevel", RPCMode.AllBuffered, level, lastLevelPrefix + 1); } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.EndArea(); } } @RPC function LoadLevel (level : String, levelPrefix : int) { lastLevelPrefix = levelPrefix; // There is no reason to send any more data over the network on the default channel, // because we are about to load the level, thus all those objects will get deleted anyway Network.SetSendingEnabled(0, false); // We need to stop receiving because first the level must be loaded first. // Once the level is loaded, rpc's and other state update attached to objects in the level are allowed to fire Network.isMessageQueueRunning = false; // All network views loaded from a level will get a prefix into their NetworkViewID. // This will prevent old updates from clients leaking into a newly created scene. Network.SetLevelPrefix(levelPrefix); Application.LoadLevel(level); yield; yield; // Allow receiving data again Network.isMessageQueueRunning = true; // Now the level has been loaded and we can start sending out data to clients Network.SetSendingEnabled(0, true); for (var go in FindObjectsOfType(GameObject)) go.SendMessage("OnNetworkLoadedLevel", SendMessageOptions.DontRequireReceiver); } function OnDisconnectedFromServer () { Application.LoadLevel(disconnectedLevel); } @script RequireComponent(NetworkView) </file> {{tag>유니티 unity}} * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.net-NetworkLevelLoad|유니티코리아위키]] (CC BY-NC-SA 2.0)
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
유니티3D ( Unity3D )
Reference Manual
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
유니티3D ( Unity3D )
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
start-up_stopped
semen_analysis
[정액검사결과 정상치]
페러데이_저가_투어
[페러데이 저가 투어]
php
[safe mode 를 사용하라]
complex_regional_pain_syndrome
dj_java_decompiler
[자바 디컴파일러 (Dj Java Decompiler)]
std024
↷ 링크가 이동 작업으로 인해 적응했습니다
misuse_preca4
↷ 링크가 이동 작업으로 인해 적응했습니다
misuse_nobason6
↷ 링크가 이동 작업으로 인해 적응했습니다
herpes_simplex
↷ 링크가 이동 작업으로 인해 적응했습니다
임신_중_음부포진_감염
↷ 링크가 이동 작업으로 인해 적응했습니다
외음부
↷ 링크가 이동 작업으로 인해 적응했습니다
genital_herpes
연성하감
↷ 링크가 이동 작업으로 인해 적응했습니다
섹스
↷ 링크가 이동 작업으로 인해 적응했습니다
성병예방_치료
↷ 링크가 이동 작업으로 인해 적응했습니다
성병
↷ 링크가 이동 작업으로 인해 적응했습니다