This example shows how to send data from Python to Unity using UDP.
The Python script sends a message to the Unity application, which receives the message and prints it to the console.
import socket
# Set up a UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# Define the address and port of the recipient
host = '127.0.0.1'
port = 5066
address = (host, port)
# Define the data to be sent
data = b'Hello, world!'
# Send the data
sock.sendto(data, address)
# Close the socket
sock.close()
using System.Net;
using System.Net.Sockets;
using System.Text;
using UnityEngine;
public class UdpServer : MonoBehaviour
{
[SerializeField] private int port = 5066;
[SerializeField] private string ipAddress = "127.0.0.1";
private UdpClient udpClient;
private IPEndPoint endPoint;
private void Start()
{
// Create a new UDP client
udpClient = new UdpClient(port);
// Set the endpoint to any IP address and port 0
endPoint = new IPEndPoint(IPAddress.Parse(ipAddress), port);
}
private void Update()
{
// Check if there is any data available
if (udpClient.Available > 0)
{
// Receive the data and endpoint of the sender
byte[] data = udpClient.Receive(ref endPoint);
// Convert the data to a string
string message = Encoding.ASCII.GetString(data);
// Print the message to the console
Debug.Log("Received message: " + message);
}
}
private void OnDestroy()
{
// Close the UDP client when the object is destroyed
udpClient.Close();
}
}
this video not a successful one, but it is a good example of what can we do with this method.
this video not a successful one either 🤷♂️
this is close to a successful one 🎉