• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            的筆記

            隨時(shí)隨地編輯

            UE4 Net role, Replicated and RPC

            Net Role

            AActor.Role描述了角色的網(wǎng)絡(luò)屬性,從而決定了rpc和replicated時(shí)的行為表現(xiàn)。這3個(gè)網(wǎng)絡(luò)Role屬性分別是:ROLE_Authority,ROLE_AutonomousProxy,ROLE_SimulatedProxy

          1. ROLE_Authority,在服務(wù)器上的所有角色都是Authority屬性
          2. ROLE_AutonomousProxy,客戶端上的本地角色
          3. ROLE_SimulatedProxy,客戶端上的網(wǎng)絡(luò)角色
          4. so

          5. 服務(wù)器上的所有角色都是Authority屬性,當(dāng)前控制的角色可以用IsLocalControlled區(qū)分
          6. 客戶上當(dāng)前控制的角色具有Autonomous屬性
          7. 客戶端上的遠(yuǎn)程角色具有SimulatedProxy屬性
            Actor 的 Role 和 RemoteRole 屬性

            Net Mode

            ENetMode AActor.GetNetMode()

          8. NM_Standalone,
            /** Standalone: a game without networking, with one or more local players. Still considered a server because it has all server functionality. */
          9. NM_DedicatedServer,
            /** Dedicated server: server with no local players. */
          10. NM_ListenServer,
            /** Listen server: a server that also has a local player who is hosting the game, available to other players on the network. */
          11. NM_Client,
            /** * Network client: client connected to a remote server. * Note that every mode less than this value is a kind of server, so checking NetMode < NM_Client is always some variety of server. */

          12. Replicated Data

            Actor中的Replicated數(shù)據(jù)自動(dòng)復(fù)制到所有客戶端上

            客戶端數(shù)據(jù)不能復(fù)制到服務(wù)器,只會(huì)在客戶端本地生效

            so

          13. 如果數(shù)據(jù)定義為replicated,最好僅在server上進(jìn)心更新,在client上只讀,避免引起不必要的混淆。

          14. 這樣判斷端的屬性:
          15.     在C++中判斷是否為服務(wù)器:Role == ROLE_Authority
          16.     在BP中判斷是否為服務(wù)器:HasAuthority
          17. Replicated的數(shù)據(jù)在bp中set/get的時(shí)候會(huì)頭頂多頂2個(gè)小球


            Replicated Data in C++

            #include "Net/UnrealNetwork.h"
            UPROPERTY(BlueprintReadOnly,Replicated)
            float Health;
            ------
            voidATestNetworkCharacter::GetLifetimeReplicatedProps(TArray< FLifetimeProperty> & OutLifetimeProps) const
            {
            Super::GetLifetimeReplicatedProps(OutLifetimeProps);
            DOREPLIFETIME(ATestNetworkCharacter, Health);
            }
            

            如果不包含頭文件UnrealNetwork.h會(huì)報(bào)錯(cuò):

            error C3861: 'DOREPLIFETIME': identifier not found


            RPC

            函數(shù)有3種replication方式

          18. Multicast---在服務(wù)器調(diào)用,然后自動(dòng)轉(zhuǎn)到客戶端
          19. Server---被客戶端調(diào)用,僅在服務(wù)器執(zhí)行;必須在有Net Owner的Actor上使用
          20. Client---被服務(wù)器調(diào)用,僅在其所有者客戶端執(zhí)行;必須在有Net Owner的Actor上使用

          21. Net Owner
          22. Actor如果是Player controller或被Player Controller所擁有,則此actor有Net Onwer

          23. 也就是說(shuō)除了多播,rpc函數(shù)如果想調(diào)用成功必須有以下限制條件
          24. Actor是一個(gè)Player Controller類型;
          25. Actor被一個(gè)Player Controller所擁有;

          26. 您必須滿足一些要求才能充分發(fā)揮 RPC 的作用:
          27. https://docs.unrealengine.com/latest/CHN/Gameplay/Networking/Actors/RPCs/index.html
          28. 它們必須從 Actor 上調(diào)用。
          29. Actor 必須被復(fù)制。
          30. 如果 RPC 是從服務(wù)器調(diào)用并在客戶端上執(zhí)行,則只有實(shí)際擁有這個(gè) Actor 的客戶端才會(huì)執(zhí)行函數(shù)。
          31. 如果 RPC 是從客戶端調(diào)用并在服務(wù)器上執(zhí)行,客戶端就必須擁有調(diào)用 RPC 的 Actor。

          32. xxx

            xxx

          33. xxx
          34. xxx

            xxx

          35. xxx
          36. xxx

            xxx

          37. xxx
          38. posted on 2017-01-14 16:51 的筆記 閱讀(2923) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            国产免费久久精品99久久| 久久久亚洲欧洲日产国码二区 | 少妇高潮惨叫久久久久久| 人妻无码αv中文字幕久久琪琪布| 久久精品国产亚洲AV影院 | 99久久精品毛片免费播放| 久久伊人精品青青草原高清| 久久久精品久久久久久 | 青青草国产精品久久| 色诱久久av| 免费国产99久久久香蕉| 伊人色综合久久天天人守人婷| 精品国际久久久久999波多野| 久久精品无码免费不卡| 91精品国产乱码久久久久久 | 久久久久免费视频| 97久久精品无码一区二区| 日韩电影久久久被窝网| 精品一区二区久久久久久久网站| 亚洲国产小视频精品久久久三级| 青青青青久久精品国产| A级毛片无码久久精品免费| 国产免费久久精品丫丫| 久久精品国产一区| 国产欧美一区二区久久| 久久久噜噜噜www成人网| 久久久久se色偷偷亚洲精品av| 国产精品久久久99| 亚洲天堂久久精品| 亚洲国产成人久久综合碰碰动漫3d| 久久久久久久人妻无码中文字幕爆 | 久久人人爽人人人人片av| 久久午夜综合久久| 狠狠久久综合| 久久精品国产只有精品66| 久久精品国产亚洲一区二区三区| 四虎国产永久免费久久| 91久久精品国产91性色也| 日韩欧美亚洲综合久久影院d3| 国内精品久久九九国产精品| 久久亚洲国产中v天仙www|