Convenience ActorComponent UDP wrapper สำหรับ Unreal Engine
นี่อาจไม่ใช่ wrapper ที่สมเหตุสมผลที่สุดสำหรับกรณีการใช้งานของคุณ แต่มีไว้เพื่อให้อยู่ร่วมกับ https://github.com/getnamo/SocketIOClient-Unreal ด้วยเวิร์กโฟลว์ที่คล้ายกัน
รวมฟังก์ชัน Unreal udp ในตัวไว้เป็นส่วนประกอบของนักแสดง ( UDPComponent ) พร้อมความสามารถในการส่งและรับ ทำงานผ่าน wrapper c++ FUDPNative ซึ่งสามารถรวมและเชื่อมโยงใหม่ในคลาสส่วนประกอบที่ไม่ใช่นักแสดงแบบกำหนดเองได้หากต้องการ
ยืนยันการทำงานกับ node.js dgram (ดูตัวอย่างส่วนสำคัญของเซิร์ฟเวอร์ echo สำหรับการทดสอบ)
เซิร์ฟเวอร์ดิสคอร์ด
เลือกนักแสดงที่ต้องการ เพิ่มองค์ประกอบ UDP ให้กับนักแสดงนั้น
เลือกส่วนประกอบที่สร้างขึ้นใหม่และแก้ไขการตั้งค่าเริ่มต้น
ตามค่าเริ่มต้น ส่วนประกอบนักแสดง udp จะเปิดอัตโนมัติทั้งส่งและรับซ็อกเก็ตเมื่อเริ่มเล่น หากคุณสนใจเฉพาะการส่ง ให้ยกเลิกการเลือกควรเปิดรับอัตโนมัติ ในทางกลับกัน ให้ยกเลิกการเลือกเปิดอัตโนมัติหากคุณไม่สนใจที่จะส่ง
นอกจากนี้ หากคุณต้องการเชื่อมต่อ/ฟังตามเวลาของคุณเอง ให้ยกเลิกการเลือกอย่างใดอย่างหนึ่งแล้วเชื่อมต่อด้วยตนเองผ่าน เช่น เหตุการณ์สำคัญ
รับ Ip 0.0.0.0 จะรับฟังการเชื่อมต่อทั้งหมดบนพอร์ตที่ระบุ
เมื่อซ็อกเก็ตการส่งของคุณเปิดขึ้น (ซ็อกเก็ตที่เตรียมไว้สำหรับการส่งที่แม่นยำยิ่งขึ้น เนื่องจากคุณไม่ได้รับการติดต่อกลับใน UDP เช่นเดียวกับใน TCP) ให้ใช้ emit เพื่อส่งข้อมูลบางส่วน การแปลง utf8 จัดทำโดยปลั๊กอิน socket.io หมายเหตุ: หากคุณลืมเปิดซ็อกเก็ตของคุณ Emit จะเปิดอัตโนมัติตามการตั้งค่าเริ่มต้นและปล่อยออกมา
คืนค่าเป็นจริงหากประมวลผลการเปล่งแสง หมายเหตุ: udp ไม่น่าเชื่อถือ ดังนั้นจึงไม่ใช่การส่งคืนข้อมูลที่ได้รับจากอีกด้านหนึ่ง สำหรับการเชื่อมต่อที่เชื่อถือได้ ให้พิจารณา TCP
เมื่อคุณเปิดซ็อกเก็ตการรับแล้ว คุณจะได้รับข้อมูลเกี่ยวกับเหตุการณ์ OnReceivedBytes
ซึ่งคุณสามารถแปลงเป็นสตริงหรือโครงสร้างที่สะดวกผ่าน socket.io (เป็นทางเลือกและต้องการให้เซิร์ฟเวอร์ของคุณส่งข้อมูลเป็นสตริง JSON)
ตั้งแต่เวอร์ชัน 0.9.5 เมื่อคุณเปิดซ็อกเก็ตการส่ง มันจะสร้างพอร์ตการส่งที่ถูกผูกไว้ ซึ่งคุณสามารถใช้เพื่อฟังเหตุการณ์ udp บนฝั่งรับ สิ่งนี้น่าจะช่วยให้ NAT เจาะทะลุได้เนื่องจากพฤติกรรมที่คาดหวัง
หากต้องการใช้คุณสมบัตินี้คุณสามารถใช้ ควรเปิดรับเพื่อส่งพอร์ตที่ถูกผูกไว้ ซึ่งจะทำให้การรับใด ๆ ที่เปิดอยู่ผูกกับ IP การส่งของคุณและส่งพอร์ตที่ถูกผูกไว้โดยอัตโนมัติ
หรือถ้าคุณต้องการทำสิ่งนี้ด้วยตนเอง คุณสามารถยกเลิกการเลือก ควรเปิดอัตโนมัติรับ จากนั้นเปิดด้วยการตั้งค่าของตัวเอง เช่น ส่งเหตุการณ์เปิดซ็อกเก็ตด้วยพอร์ตที่ถูกผูกไว้
แต่ละรีลีสจะมีปลั๊กอินไคลเอนต์ socket.io ปลั๊กอินนั้นมีวัตถุประสงค์เพื่อใช้สำหรับการควบคุมที่เชื่อถือได้ จากนั้นส่วนประกอบข้อมูลแบบเรียลไทม์/ใหม่ล่าสุดของเครือข่ายของคุณก็สามารถไปป์ได้โดยใช้ปลั๊กอิน udp นี้ ลองประทับเวลาข้อมูลของคุณเพื่อที่คุณจะได้รู้ว่าแพ็กเก็ตใดที่จะทิ้ง/ละเว้น
ทำงานนอกกรอบ
หากคุณใช้สิ่งนี้เป็นปลั๊กอินโปรเจ็กต์ คุณจะต้องแปลงโปรเจ็กต์พิมพ์เขียวเฉพาะโปรเจ็กต์เป็นแบบผสม (bp และ C++) ทำตามคำแนะนำเหล่านี้เพื่อดำเนินการดังกล่าว: https://allarsblog.com/2015/11/04/converting-bp-project-to-cpp/
เช่น การใช้ตัวเลือกเมนูไฟล์เพื่อแปลงโปรเจ็กต์ของคุณเป็นแบบมิกซ์โดยการเพิ่มไฟล์ C++
เอ็มไอทีได้รับใบอนุญาต
ได้รับแรงบันดาลใจอย่างมากจาก https://wiki.unrealengine.com/UDP_Socket_Sender_Receiver_From_One_UE4_Instance_To_Another