RemoteFunction

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

วัตถุ RemoteFunction ช่วยให้การสื่อสารแบบสองทางแบบเรียลไทม์ข้ามขอบเขต ไคลเอนต์-เซิร์ฟเวอร์คุณสามารถใช้มันเพื่อกำหนดฟังก์ชันการโทรกลับที่กําหนดเองและเรียกโดยตรงโดยการโทร RemoteFunction:InvokeClient() หรือ RemoteFunction:InvokeServer()รหัสที่เรียกฟังก์ชัน จะให้ผลจนกว่าจะได้รับคำตอบจากผู้รับ

เพื่อให้ทั้งเซิร์ฟเวอร์และไคลเอนต์สามารถเข้าถึงตัวอย่าง RemoteFunction อินสแตนซ์ต้องอยู่ในสถานที่ที่ทั้งสองฝ่ายสามารถมองเห็นได้ เช่น ReplicatedStorage แม้ว่าในบางกรณีจะเหมาะสมที่จะเก็บไว้ใน Workspace หรือภายใน Tool

หากผลลัพธ์เป็น ไม่ จำเป็น แนะนำให้คุณใช้ RemoteEvent แทน เนื่องจากการเรียกของมันเป็นเชิงเอกเทศและไม่จำเป็นต้องรอการตอบสนองเพื่อดำเนินการต่อดู กิจกรรมระยะไกลและการโทรกลับ สําหรับตัวอย่างโค้ดและรายละเอียดเพิ่มเติมเกี่ยวกับ RemoteFunction

ข้อควรระวังในการสตรีม

โปรดทราบว่าหากการเรียกใช้ RemoteFunction สร้างตัวอย่างบนเซิร์ฟเวอร์ จะไม่มีการรับประกันว่าจะมีอยู่บนไคลเอนต์เมื่อฟังก์ชันกลับมาเป็นสิ่งสำคัญอย่างยิ่งในสถานที่ที่การสตรีมตัวอย่าง เปิดใช้งาน และเมื่อตัวอย่างที่สร้างขึ้นมี หรือ เนื่องจากส่วนที่อยู่ไกลจากตัวละครของผู้เล่นอาจไม่ถูกสตรีมไปยังไคลเอนต์และโมเดลที่เป็น ขึ้นอยู่กับว่าส่วนของพวกเขาถูกสตรีมหรือไม่แม้ว่าโมเดลจะเป็น Persistent ก็อาจมีความล่าช้าระหว่างการสร้างโมเดลและเมื่อมันถูกส่งไปยังไคลเอนต์

ข้อจำกัดพารามิเตอร์

ประเภทของวัตถุ Roblox ใดๆ เช่น , หรืออื่นๆ สามารถส่งเป็นพารามิเตอร์เมื่อเรียกใช้ รวมทั้งประเภท Luau เช่นตัวเลข สตริง และบูลีเนียน แม้ว่าคุณควรสำรวจข้อจำกัด อย่างระมัดระวังก็ตาม

สรุป

วิธีการ

Callbacks

คุณสมบัติ

วิธีการ

InvokeClient

ผลตอบแทน

เรียก RemoteFunction ซึ่งจะเรียกการโทรกลับ OnClientInvoke ในที่สุดเนื่องจากวิธีนี้ใช้สื่อสารจากเซิร์ฟเวอร์ไปยังไคลเอนต์จะทำงานได้เฉพาะเมื่อใช้ใน Script

ประเภทของวัตถุ Roblox ใดๆ เช่น , หรืออื่นๆ สามารถส่งเป็นพารามิเตอร์ไปยัง เช่นเดียวกับประเภท Luau เช่นตัวเลข สตริง และบูลีเนียน แม้ว่าคุณควรสำรวจข้อจํากัด อย่างระมัดระวังก็ตาม

ดู กิจกรรมระยะไกลและการโทรกลับ สําหรับตัวอย่างโค้ดและรายละเอียดเพิ่มเติมเกี่ยวกับ RemoteFunction

คำเตือน

ในการปฏิบัติ เซิร์ฟเวอร์มักจะไม่เรียกใช้ไคลเอนต์บ่อยนัก เนื่องจากไคลเอนต์มักไม่มีข้อมูลที่เซิร์ฟเวอร์ไม่มี และการดำเนินการที่เฉพาะลูกค้าเท่านั้นที่สามารถดำเนินการได้ เช่น การแสดง GUI มักจะไม่ต้องการการโทรกลับดังนั้น RemoteEvent:FireClient() จึงแนะนำให้ใช้เป็นวิธีแบบไม่ซิงโครนิซที่ไม่จำเป็นต้องรอการตอบสนองเพื่อดำเนินการต่อ

หากคุณต้องการโทรไปยังไคลเอนต์จากเซิร์ฟเวอร์อย่างถูกต้อง โปรดทราบความเสี่ยงต่อไปนี้:

  • หากไคลเอนต์โยนข้อผิดพลาด เซิร์ฟเวอร์ก็โยนข้อผิดพลาดเช่นกัน
  • หากไคลเอนต์ตัดการเชื่อมต่อในขณะที่ถูกเรียกใช้ InvokeClient() จะโยนข้อผิดพลาด
  • หากไคลเอนต์ไม่ส่งค่ากลับ เซิร์ฟเวอร์จะให้บริการตลอดไป

พารามิเตอร์

player: Player

The Player ที่เกี่ยวข้องกับไคลเอนต์ที่จะเรียกใช้

ค่าเริ่มต้น: ""
arguments: Tuple

ค่าที่จะส่งไปยังการโทรกลับ OnClientInvoke

ค่าเริ่มต้น: ""

ส่งค่ากลับ

ค่าที่ส่งกลับจากการเรียกคืน OnClientInvoke

InvokeServer

ผลตอบแทน

เรียก RemoteFunction ซึ่งจะเรียกการโทรกลับ OnServerInvoke ในที่สุดเนื่องจากวิธีนี้ใช้สื่อสารจากไคลเอนต์ไปยังเซิร์ฟเวอร์ จะทำงานได้เฉพาะเมื่อใช้ใน LocalScript

หากผลลัพธ์ที่ส่งกลับไม่จำเป็น แนะนำให้ใช้ RemoteEvent:FireServer() แทนเนื่องจากการเรียกของมันเป็นเชิงเอกเทศและไม่จำเป็นต้องรอการตอบสนองเพื่อดำเนินการต่อ

ประเภทของวัตถุ Roblox ใดๆ เช่น , หรืออื่นๆ สามารถส่งเป็นพารามิเตอร์ไปยัง เช่นเดียวกับประเภท Luau เช่นตัวเลข สตริง และบูลีเนียน แม้ว่าคุณควรสำรวจข้อจํากัด อย่างระมัดระวังก็ตาม

ดู กิจกรรมระยะไกลและการโทรกลับ สําหรับตัวอย่างโค้ดและรายละเอียดเพิ่มเติมเกี่ยวกับ RemoteFunction

พารามิเตอร์

arguments: Tuple

ค่าที่จะส่งไปยังการโทรกลับ OnServerInvoke

ค่าเริ่มต้น: ""

ส่งค่ากลับ

ค่าที่ส่งกลับจากการเรียกคืน OnServerInvoke

อีเวนต์

Callbacks

OnClientInvoke

คอลเลกชันนี้จะเรียกเมื่อ RemoteFunction ถูกเรียกใช้ด้วย InvokeClient()เมื่อฟังก์ชันผูกกลับมาแล้ว ค่าที่ส่งกลับจะถูกส่งกลับไปยังเซิร์ฟเวอร์ที่เรียก

ดู กิจกรรมระยะไกลและการโทรกลับ สําหรับตัวอย่างโค้ดและรายละเอียดเพิ่มเติมเกี่ยวกับ OnClientInvoke

พารามิเตอร์

arguments: Tuple

พารามิเตอร์ที่ส่งผ่าน InvokeClient()


ส่งค่ากลับ

ค่าที่ส่งคืนโดยฟังก์ชัน callback

OnServerInvoke

คอลเลกชันนี้จะเรียกเมื่อ RemoteFunction ถูกเรียกใช้ด้วย InvokeServer()เมื่อฟังก์ชันผูกกลับมาแล้ว ค่าที่ส่งกลับจะถูกส่งกลับไปยังไคลเอนต์ที่เรียก

ดู กิจกรรมระยะไกลและการโทรกลับ สําหรับตัวอย่างโค้ดและรายละเอียดเพิ่มเติมเกี่ยวกับ OnServerInvoke

พารามิเตอร์

player: Player

The Player ที่เกี่ยวข้องกับไคลเอนต์ที่การเรียก InvokeServer() เกิดจาก

arguments: Tuple

พารามิเตอร์ที่ส่งผ่าน InvokeServer()


ส่งค่ากลับ

ค่าที่ส่งคืนโดยฟังก์ชัน callback