国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于Unity3D的虛擬現(xiàn)實(shí)設(shè)備與移動(dòng)設(shè)備的同步顯示方法

      文檔序號(hào):9828283閱讀:1894來源:國(guó)知局
      基于Unity3D的虛擬現(xiàn)實(shí)設(shè)備與移動(dòng)設(shè)備的同步顯示方法
      【技術(shù)領(lǐng)域】
      [0001 ]本發(fā)明涉及一種基于Unity 3D的虛擬現(xiàn)實(shí)設(shè)備與移動(dòng)設(shè)備的同步顯示方法。
      【背景技術(shù)】
      [0002]現(xiàn)有的Unity網(wǎng)絡(luò)共享技術(shù)大多使用Unity自帶的網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)。這種技術(shù)的好處在于使用Unity自帶的網(wǎng)絡(luò)技術(shù)可以很好地解決多人同時(shí)在線游戲,它主要通過創(chuàng)建NetworkV i ews (網(wǎng)絡(luò)視圖)初始化NetworkV i ew,并且通過RPC (遠(yuǎn)程程序調(diào)用)函數(shù)來共享參數(shù)。然而這種技術(shù)也存在一些缺陷:1、網(wǎng)絡(luò)開銷大,在多人共享需求相對(duì)簡(jiǎn)單的前提下,依然需要維護(hù)每個(gè)網(wǎng)絡(luò)視圖,包括維護(hù)他們的創(chuàng)建、銷毀以及傳參的穩(wěn)定性;2、是一個(gè)典型的服務(wù)器/客戶端模式,當(dāng)一個(gè)客戶端發(fā)生了一些情況時(shí)其他客戶端無法第一時(shí)間得知消息,需要服務(wù)器進(jìn)行轉(zhuǎn)發(fā),這些在實(shí)際使用中造成一定的不便;3、客戶端需要實(shí)現(xiàn)事先得知服務(wù)器的IP才能實(shí)現(xiàn)與服務(wù)器的連接,沒有一個(gè)簡(jiǎn)單有效的方法來實(shí)現(xiàn)局域網(wǎng)客戶端對(duì)服務(wù)器的自覺發(fā)現(xiàn)的功能。

      【發(fā)明內(nèi)容】

      [0003]本發(fā)明提供了一種基于Unity3D的虛擬現(xiàn)實(shí)設(shè)備與移動(dòng)設(shè)備的同步顯示方法,其克服了【背景技術(shù)】中所述的現(xiàn)有技術(shù)的不足。
      [0004]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
      [0005]基于Unity 3D的虛擬現(xiàn)實(shí)設(shè)備與移動(dòng)設(shè)備的同步顯示方法,它包括:
      [0006]步驟I,虛擬現(xiàn)實(shí)設(shè)備在局域網(wǎng)內(nèi)建立本地的服務(wù)器,開啟單人應(yīng)用,初始化一個(gè)網(wǎng)絡(luò)視圖,并向網(wǎng)內(nèi)廣播發(fā)送消息,包括該服務(wù)器IP地址和場(chǎng)景信息;
      [0007]步驟2,移動(dòng)設(shè)備選擇所需連接的服務(wù)器并通過獲得該服務(wù)器的IP地址連接到服務(wù)器,形成一個(gè)新的客戶端;
      [0008]步驟3,當(dāng)移動(dòng)設(shè)備連接上服務(wù)器時(shí),1]]1;^730的011?]^761'(:011116(^6(1函數(shù)捕捉到該事件,便調(diào)用遠(yuǎn)程程序調(diào)用函數(shù)networkView.RPC在所有的客戶端和服務(wù)器上創(chuàng)建新的網(wǎng)絡(luò)玩家,進(jìn)而通過Unity 3D的函數(shù)Al locateViewID()生成對(duì)應(yīng)玩家的NewViewID;
      [0009]步驟4,移動(dòng)設(shè)備獲取服務(wù)器中的場(chǎng)景信息并載入相同的場(chǎng)景;
      [0010]步驟5,服務(wù)器通過調(diào)用遠(yuǎn)程程序調(diào)用函數(shù)networkView.RPC來共享服務(wù)器中的虛擬攝像機(jī)的位置坐標(biāo),客戶端通過調(diào)用遠(yuǎn)程程序調(diào)用函數(shù)networkView.RPC函數(shù)來同步獲得攝像機(jī)的數(shù)據(jù),并根據(jù)該虛擬攝像機(jī)的坐標(biāo)移動(dòng)相應(yīng)的視角,得到與虛擬現(xiàn)實(shí)設(shè)備服務(wù)器相同的當(dāng)前場(chǎng)景視野。
      [0011]—實(shí)施例之中:所述步驟2中,移動(dòng)設(shè)備獲得服務(wù)器的IP的方法包括:
      [0012]步驟21,服務(wù)器打開一個(gè)已知的端口,用來監(jiān)聽來自移動(dòng)設(shè)備的消息;
      [0013]步驟22,客戶端打開一個(gè)隨機(jī)的端口,用來監(jiān)聽來自服務(wù)器的消息;
      [0014]步驟23,客戶端廣播其選擇的隨機(jī)端口的端口號(hào)和IP地址給服務(wù)器;
      [0015]步驟24,服務(wù)器接收到客戶端發(fā)送的隨機(jī)端口號(hào)后,便對(duì)客戶端作出應(yīng)答;
      [0016]步驟25,客戶端收到服務(wù)器的應(yīng)答后,即可獲得該服務(wù)器的IP和場(chǎng)景信息。
      [0017]一實(shí)施例之中:所述步驟23中,客戶端通過基于.net的網(wǎng)絡(luò)通信接口所建立的廣播函數(shù)向服務(wù)器廣播其端口號(hào)和IP地址。
      [0018]—實(shí)施例之中:所述步驟2中,移動(dòng)設(shè)備上設(shè)有一操作界面,用于用戶選擇所需連接的服務(wù)器。
      [0019]—實(shí)施例之中:所述步驟5中,所述客戶端利用差值法來平滑視覺的移動(dòng)。
      [0020]一實(shí)施例之中:所述步驟5中,所述客戶端基于UDP協(xié)議接收服務(wù)器共享的虛擬攝像機(jī)的位置坐標(biāo)信息。
      [0021]—實(shí)施例之中:所述移動(dòng)設(shè)備包括手機(jī)、平板電腦、筆記本電腦中的任意一種。
      [0022]本技術(shù)方案與【背景技術(shù)】相比,它具有如下優(yōu)點(diǎn):
      [0023]1、減少網(wǎng)絡(luò)開銷;在本發(fā)明所述的技術(shù)方案中,只使用了一個(gè)網(wǎng)絡(luò)視圖,因此可設(shè)置這個(gè)網(wǎng)絡(luò)視圖的State Synchoronizat 1n (狀態(tài)同步)為OFF ,Observed為None,減少了用RPC方法同步消息時(shí)的不必要開銷。
      [0024]2、實(shí)現(xiàn)了一個(gè)端到端的網(wǎng)絡(luò)通信,使得當(dāng)網(wǎng)絡(luò)玩家加入或斷線時(shí)在所有的客戶端上都可對(duì)網(wǎng)絡(luò)玩家對(duì)象的創(chuàng)建和銷毀。
      [0025]3、實(shí)現(xiàn)了局域網(wǎng)內(nèi)客戶端對(duì)服務(wù)器的自覺發(fā)現(xiàn),且通過.net通信接口建立廣播函數(shù)進(jìn)行廣播,使得客戶端對(duì)服務(wù)器的發(fā)現(xiàn)過程變得簡(jiǎn)單。
      【具體實(shí)施方式】
      [0026]本發(fā)明提供了一種基于Unity3D的虛擬現(xiàn)實(shí)設(shè)備與移動(dòng)設(shè)備的同步顯示方法,它包括:
      [0027]步驟I,虛擬現(xiàn)實(shí)設(shè)備在局域網(wǎng)內(nèi)建立本地的服務(wù)器,開啟單人應(yīng)用,初始化一個(gè)網(wǎng)絡(luò)視圖,并向網(wǎng)內(nèi)廣播發(fā)送消息,該消息包括該服務(wù)器IP地址和場(chǎng)景信息;
      [0028]步驟2,移動(dòng)設(shè)備選擇所需連接的服務(wù)器并通過主動(dòng)獲得該服務(wù)器的IP地址連接到服務(wù)器,形成一個(gè)新的客戶端;本實(shí)施例中,移動(dòng)設(shè)備上設(shè)有一操作界面,用于可通過該操作界面選擇所需連接的服務(wù)器。
      [0029]步驟3,當(dāng)移動(dòng)設(shè)備連接上服務(wù)器時(shí),1]]1;^730的011?]^761'(:011116(^6(1函數(shù)捕捉到該事件,便調(diào)用遠(yuǎn)程程序調(diào)用函數(shù)networkView.RPC在所有的客戶端和服務(wù)器上創(chuàng)建新的網(wǎng)絡(luò)玩家,此處米用的 networkView.RPC 函數(shù)為networkView.RPC(〃 JoinPlayer ",RPCMode.Al I,newViewID,posit 1n,newplayer),其中,JoinPlayer 是客戶端和服務(wù)器共享的函數(shù),用來處理新用戶加入的事件,RPCMode.All是指這個(gè)函數(shù)在所有客戶端和服務(wù)器中共享,剩余三個(gè)參數(shù)是JoinPlayer函數(shù)需要處理的參數(shù),分別代表,新客戶端的網(wǎng)絡(luò)視圖,服務(wù)器的攝像機(jī)位置和新的客戶端實(shí)例。進(jìn)而通過1]]1;^730的函數(shù)411003丨6\^6¥10()生成對(duì)應(yīng)玩家的NewViewID,用于區(qū)分不同的玩家;
      [0030]步驟4,移動(dòng)設(shè)備獲取服務(wù)器中的場(chǎng)景信息并載入相同的場(chǎng)景;
      [0031]步驟5,服務(wù)器通過調(diào)用遠(yuǎn)程程序調(diào)用函數(shù)networkView.RPC來共享服務(wù)器中的虛擬攝像機(jī)的位置坐標(biāo),客戶端通過調(diào)用遠(yuǎn)程程序調(diào)用函數(shù)networkView.RPC函數(shù)來同步獲得攝像機(jī)的數(shù)據(jù);由于遠(yuǎn)程程序調(diào)用函數(shù)(RPC)會(huì)在每一個(gè)客戶端和服務(wù)器內(nèi)被調(diào)用,因此客戶端只要判斷networkView.RPC中的IP地址是否與自己相同即可知道哪些指令是需要該客戶端執(zhí)行,哪些指令是其他客戶端執(zhí)行,若相同,則該客戶端根據(jù)該虛擬攝像機(jī)的
      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1