在 Unity 中,您可以使用 UDP 协议进行网络通信。以下是一个简单的示例代码,展示了如何在 Unity 中实现 UDP 的发送和接收:

using UnityEngine;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class UDPExample : MonoBehaviour
{
    private UdpClient udpClient;
    public int localPort = 1234;
    public string remoteIP = '127.0.0.1';
    public int remotePort = 5678;
    
    void Start()
    {
        // 创建本地端口
        udpClient = new UdpClient(localPort);
        
        // 开始异步接收
        udpClient.BeginReceive(ReceiveCallback, null);
    }
    
    void OnDestroy()
    {
        // 关闭UDP客户端
        udpClient.Close();
    }
    
    void Update()
    {
        // 示例:按下空格键发送消息
        if (Input.GetKeyDown(KeyCode.Space))
        {
            SendData('Hello from Unity!');
        }
    }
    
    void SendData(string message)
    {
        // 将消息转换为字节数组
        byte[] data = Encoding.UTF8.GetBytes(message);
        
        // 发送消息到远程IP和端口
        udpClient.Send(data, data.Length, remoteIP, remotePort);
    }
    
    void ReceiveCallback(IAsyncResult result)
    {
        // 接收远程数据
        IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, localPort);
        byte[] receivedData = udpClient.EndReceive(result, ref endPoint);
        
        // 将接收到的数据转换为字符串
        string receivedMessage = Encoding.UTF8.GetString(receivedData);
        
        // 处理接收到的消息
        Debug.Log('Received: ' + receivedMessage);
        
        // 重新开始异步接收
        udpClient.BeginReceive(ReceiveCallback, null);
    }
}

在这个示例中,我们使用 UdpClient 类来创建一个 UDP 客户端。在 Start 方法中,我们指定了本地端口并开始异步接收数据。

SendData 方法用于将消息转换为字节数组并发送到远程 IP 和端口。

ReceiveCallback 方法用于处理接收到的数据。我们在该方法中将接收到的数据转换为字符串,并在控制台打印输出。

请注意,此示例中的 IP 地址和端口号是示例值,您需要根据您的实际需求进行修改。

希望这个示例对您有所帮助,如果您有其他问题,请随时提问。

Unity UDP发送接收代码示例:实现网络通信

原文地址: https://www.cveoy.top/t/topic/kbW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录