zoukankan      html  css  js  c++  java
  • 区分服务器和客户端,玩家的控制权

    在蓝图中有一个区分服务器和客户端的宏:SwitchHasAuthority

    宏里判断了Server和Client

     FORCEINLINE_DEBUGGABLE bool AActor::HasAuthority()const

    {

    return (Role == ROLE_Authority);       //为真就表示是Server控制的角色,说明这个东西实在服务器上的;

    }

    引擎的EegineTypes.h有角色代理类型的枚举

    同步:

    物体(Actor)有一个复制属性,若为Ture则表是该物体可以进行网络复制,同步到其他Client。

     

     如果要实现Actor的网络同步,则Replicates必须为Ture,且需要在Sercer端执行逻辑。

    Acotr在Server端和Client的表现大概有:以生成一个物体为例

    Replicates == Ture

    1.在某Client调用本地执行的逻辑本地会生成一个物体,则其他Client端和Server端不会生成物体;

    2.某Client在本地向Server端发起请求生成一个物体,在Server上生成一个物体,则Server和所有Client都会生成物体;

    Replicates == False

    1.在某Client调用本地执行的逻辑本地会生成一个物体,则其他Client端和Server端不会生成物体;

    2.某Client在本地向Server端发起请求生成一个物体,在Server上生成一个物体,所有Client都不会生成物体;

    通常使用的EventBeginPlay生成物体其实在Server和Client都生成了一个

     

    Server和Client都不会有物体生成:

    5键是在本地执行的,按下后本地的值为Ture,Tick事件会在Client和Server都调用,所以所以Tick可以看作

    Server调用:Server端的值还是False,不执行后面逻辑

    Client调用:在Switch。。处停止

    Owner:

    链接:      https://api.unrealengine.com/CHN/Gameplay/Networking/Actors/OwningConnections/index.html

  • 相关阅读:
    qt映射器QSignalMapper的理解
    win10环境下安装Qt4.8、PyQt及development tools
    BZOJ1040 基环森林 找环+基础树形DP
    贪心 BZOJ1034
    HDU5293 树链剖分+树形DP
    BZOJ 1028 BZOJ 1029 //贪心
    BZOJ1025
    仙人掌图判定及求直径HDU3594 BZOJ1023
    BZOJ1021
    BZOJ1022
  • 原文地址:https://www.cnblogs.com/fuhaiqing/p/13228541.html
Copyright © 2011-2022 走看看