权限获取和同步

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、OwnerShip权限获取

//消息体
public struct ClientInfo : INetworkSerializable
{
    public ulong m_ClientId;

    public void NetworkSerialize<T>(BufferSerializer<T> serializer) where T : IReaderWriter
    {
        serializer.SerializeValue(ref m_ClientId);
    }
}


 //权限获取只能在服务段调用,客户端调用会报错
 [ServerRpc(RequireOwnership = false)]
 private void GetOwnerShipServerRpc(ClientInfo clientInfo)
 {
     NetworkObject networkObject = GetComponent<NetworkObject>();
     //m_ClientId 为需要获取权限的客户端的ClientId
     //切记不用要OwnerClientId,OwnerClientId为当前权限拥有者的ClientId
     networkObject .ChangeOwnership(clientInfo.m_ClientId);
     
     Debug.Log("<color=green>获取权限</color>");
 }

二、客户端同步

2.1 NetworkTransform 客户端同步

  
    [DisallowMultipleComponent]
    public class ClientNetworkTransform : NetworkTransform
    {
    /// <summary>
    正常情况下,NetworkTransform.OnIsServerAuthoritative的所有者权限由NetworkTransform
    组件首次初始化时的方法决定,如果返回True只能事服务器端更新位置到客户端, 通过继承的重写将返回值    
    值为False,可以根据开启客户端向其他客户端同步的权限
    /// </summary>
        protected override bool OnIsServerAuthoritative()
        {
           //return true 为允许服务端向其它客户端同步
            return false; //false允许用户权限的客户端向其它客户端同步
        }
    }

2.2 NetworkAnimator 客户端同步

  
    [DisallowMultipleComponent]
    public class ClientNetworkAnimator : NetworkAnimator
    {
    /// <summary>
    正常情况下,NetworkTransform.OnIsServerAuthoritative的所有者权限由NetworkAnimator 
    组件首次初始化时的方法决定,如果返回True只能事服务器端更新位置到客户端, 通过继承的重写将返回值    
    值为False,可以根据开启客户端向其他客户端同步的权限
    /// </summary>
        protected override bool OnIsServerAuthoritative()
        {
           //return true 为允许服务端向其它客户端同步
            return false; //false允许用户权限的客户端向其它客户端同步
        }
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值