유니티(unity)
[C#/Unity] UDP 기본 코드
개발자 고포고
2024. 1. 31. 16:47
반응형
UDP 기본 코드
using System.Collections.Generic;
using UnityEngine;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class UDPReceiver : MonoBehaviour
{
private UdpClient udpClient;
private int port = 7777;
private Queue<string> messageQueue = new Queue<string>();
void Start()
{
udpClient = new UdpClient(port);
BeginReceive();
}
private void BeginReceive()
{
udpClient.BeginReceive(ReceiveCallback, null);
}
private void ReceiveCallback(IAsyncResult ar)
{
IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, port);
byte[] bytesReceived = udpClient.EndReceive(ar, ref remoteEP);
string message = Encoding.UTF8.GetString(bytesReceived);
lock (messageQueue)
{
messageQueue.Enqueue(message);
}
BeginReceive();
}
void Update()
{
lock (messageQueue)
{
if (messageQueue.Count > 0)
{
string message = messageQueue.Dequeue();
if (message.Contains("11"))
{
Debug.Log("받은 메시지: " + message);
StartCoroutine(ChangeGroup(1));
}
else if (message.Contains("12"))
{
Debug.Log("받은 메시지: " + message);
StartCoroutine(ChangeGroup(0));
}
}
}
}
IEnumerator ChangeGroup(int group)
{
// 코루틴의 내용
yield return null;
}
void OnDestroy()
{
udpClient.Close();
}
}
#Unity #유니티 #C# #wpf
반응형