unity 使用Netcode for GameObjects的ServerRpc与ClientRpc怎么接收与发送消息详细代码举例
时间: 2024-05-15 15:16:33 浏览: 18
以下是一个简单的示例,演示了如何使用Netcode for GameObjects的ServerRpc和ClientRpc发送和接收消息:
```csharp
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Netcode;
public class MyNetworkBehaviour : NetworkBehaviour
{
[ServerRpc]
public void ServerRpcMethod(string message)
{
Debug.Log("Server received message: " + message);
// 在服务器上执行一些操作...
// 向客户端发送消息
ClientRpcMethod("Hello from the server!");
}
[ClientRpc]
public void ClientRpcMethod(string message)
{
Debug.Log("Client received message: " + message);
// 在客户端上执行一些操作...
}
private void Update()
{
if (!IsLocalPlayer)
return;
if (Input.GetKeyDown(KeyCode.Space))
{
// 在本地玩家上调用ServerRpc方法
string message = "Hello from the client!";
ServerRpcMethod(message);
}
}
}
```
在这个例子中,我们定义了两个方法,一个是ServerRpcMethod,一个是ClientRpcMethod。ServerRpcMethod用于从客户端向服务器发送消息,在服务器上执行一些操作,并向所有客户端发送消息。ClientRpcMethod用于从服务器向客户端发送消息,在客户端上执行一些操作。
在Update方法中,我们检查是否是本地玩家,并在按下空格键时调用ServerRpcMethod方法,向服务器发送一条消息。
这是一个简单的例子,但它演示了如何使用Netcode for GameObjects的ServerRpc和ClientRpc发送和接收消息。