Unreal 엔진을 위한 편리한 ActorComponent UDP 래퍼입니다.
이는 귀하의 사용 사례에 가장 적합한 래퍼는 아닐 수 있지만 유사한 작업 흐름을 통해 https://github.com/getnamo/SocketIOClient-Unreal과 공존하기 위한 것입니다.
내장된 Unreal UDP 기능을 송신 및 수신 기능을 모두 갖춘 액터 컴포넌트( UDPComponent )로 래핑합니다. 원하는 경우 사용자 정의 비액터 구성 요소 클래스에 포함하고 다시 연결할 수 있는 C++ FUDPNative 래퍼를 통해 작동합니다.
node.js dgram 작업을 확인했습니다(테스트용 에코 서버 요지 예시 참조).
디스코드 서버
원하는 배우를 선택하세요. 해당 액터에 UDP 구성 요소를 추가합니다.
새로 생성된 구성요소를 선택하고 기본 설정을 수정합니다.
기본적으로 UDP 행위자 구성 요소는 재생 시작 시 송신 및 수신 소켓을 모두 자동으로 엽니다. 보내기에만 관심이 있는 경우 선택을 취소하면 자동 열기 수신이 가능합니다. 반대로 보내는 데 관심이 없으면 자동 열기 보내기를 선택 취소하세요.
또한 원하는 시간에 연결/청취하려면 둘 중 하나를 선택 취소하고 예를 들어 키 이벤트를 통해 수동으로 연결하세요.
수신 IP 0.0.0.0은 지정된 포트의 모든 연결을 수신합니다.
전송 소켓이 열리면(TCP처럼 UDP에서 콜백을 받지 않기 때문에 전송을 위해 더 정확하게 준비된 소켓), 내보내기를 사용하여 일부 데이터를 보내고, 소켓.io 플러그인에서 제공하는 utf8 변환을 사용하세요. 주의: 소켓 여는 것을 잊은 경우 기본 설정에서 방출이 자동으로 열리고 방출됩니다.
방출이 처리되면 true를 반환합니다. 주의: udp는 신뢰할 수 없으므로 이는 데이터가 상대방에서 수신되었다는 반환이 아닙니다. 안정적인 연결을 위해서는 TCP를 고려하십시오.
수신 소켓을 열면 OnReceivedBytes
이벤트에 대한 데이터를 받게 됩니다.
이는 소켓.io를 통해 편리한 문자열이나 구조로 변환할 수 있습니다(선택 사항이며 서버가 데이터를 JSON 문자열로 보내야 함).
v0.9.5부터 송신 소켓을 열면 수신 측에서 udp 이벤트를 수신하는 데 사용할 수 있는 바인딩된 송신 포트가 생성됩니다. 예상되는 동작으로 인해 NAT 피어싱에 도움이 됩니다.
이 기능을 사용하려면 수신을 바인딩된 송신 포트로 열어야 합니다. 이렇게 하면 모든 수신 열기가 자동으로 송신 IP 및 송신 바인딩 포트에 바인딩됩니다.
또는 수동으로 이 작업을 수행하려는 경우 자동 열기 수신해야 함 을 선택 취소한 다음 바인딩된 포트를 사용하여 소켓 열기 이벤트 보내기와 같은 자체 설정으로 열 수 있습니다.
각 릴리스에는 소켓.io 클라이언트 플러그인이 포함되어 있습니다. 해당 플러그인은 안정적인 제어를 위해 사용되며 이 UDP 플러그인을 사용하여 네트워크의 실시간/최신 데이터 구성 요소를 파이프할 수 있습니다. 어떤 패킷을 삭제/무시할지 알 수 있도록 데이터에 타임스탬프를 찍는 것을 고려하세요.
즉시 작동합니다.
이 플러그인을 프로젝트 플러그인으로 사용하는 경우 블루프린트 전용 프로젝트를 혼합(bp 및 C++) 프로젝트로 변환해야 합니다. 이를 수행하려면 다음 지침을 따르십시오: https://allarsblog.com/2015/11/04/converting-bp-project-to-cpp/
예를 들어 파일 메뉴 옵션을 사용하여 C++ 파일을 추가하여 프로젝트를 혼합 프로젝트로 변환합니다.
MIT 라이센스를 받았습니다.
https://wiki.unrealengine.com/UDP_Socket_Sender_Receiver_From_One_UE4_Instance_To_Another에서 크게 영감을 받았습니다.