自学内容网 自学内容网

学习unity官方的网络插件Netcode【一】

对bool值的个人理解:
IsOwner:本地网络对象
IsLocalPlayer:本地网络玩家,(本地网络玩家也是本地网络对象)

using Unity.Netcode;
using UnityEngine;
//个人理解:通过Rpc完成了一次客户端给服务端发消息,服务端再向所有客户端广播消息
public class RpcTest : NetworkBehaviour
{
    public override void OnNetworkSpawn()
    {
        if (!IsServer && IsOwner) //只从拥有此NetworkBehaviour实例的NetworkObject的客户端向服务器发送RPC
        {
            ServerOnlyRpc(0, NetworkObjectId);
        }
    }
    [Rpc(SendTo.Server)]
    void ServerOnlyRpc(int value, ulong sourceNetworkObjectId)
    {
        //Debug.Log($"服务器接收RPC #{value} on NetworkObject #{sourceNetworkObjectId}");
        ClientAndHostRpc(value, sourceNetworkObjectId);
    }

    [Rpc(SendTo.ClientsAndHost)]
    void ClientAndHostRpc(int value, ulong sourceNetworkObjectId)
    {
        //Debug.Log($"客户端收到RPC #{value} on NetworkObject #{sourceNetworkObjectId}");
        if (IsOwner) //只向NetworkObject的所有者发送RPC
        {
            ServerOnlyRpc(value + 1, sourceNetworkObjectId);
        }
    }
}

原文地址:https://blog.csdn.net/hyt0626/article/details/140616144

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!