เหตุการณ์

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

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

เช่นเดียวกับผู้เล่นที่สัมผัสกับ Character โดยอัตโนมัติจะเปิดกิจกรรม BasePart ขึ้น เมื่อผู้เล่นเข้าร่วมประสบการณ์ของคุณ เห

เนื่องจากจำนวนเหตุการณ์และการออกแบบของเครื่องคอมพิวเตอร์ที่มากมาย การเขียนโค้ดของ Roblox จึงมักจะเรียกว่า เหตุการณ์ขับ นี้แตกต่างจากเครื่องมือเกมอื่น ๆ ที่เน้นการประมวลผล

คุณไม่จำเป็นต้องฟังเหตุการณ์หรือทำอะไรใด ๆ ต่อเหตุการณ์เหล่านั้น แต่เหตุการณ์กำลังดำเนินอยู่และสามารถใช้งานได้ เมื่อคุณต้องการตอบสนองต่อเหตุการณ์ใด ๆ คุณเชื่อมโยงตัวแปรไปยังมัน

การเชื่อมต่อฟังก์ชันกับเหตุการณ์

คุณเชื่อมต่อฟังก์ชันไปยังอีเวนต์โดยใช้ Connect() เพื่อดำเนินการโค้ดทุกครั้งที่เหตุการณ์เกิด

ตัวอย่างรหัสต่อไปนี้แสดงให้เห็นวิธีการเชื่อมต่อฟังก์ชันที่มีชื่อว่า onPartTouched() กับเหตุการณ์ Touched ของส่วน:


-- เดาว่าสคริปต์เป็นลูกของส่วน
local part = script.Parent
-- หน้าต่างที่คุณต้องการที่จะดำเนินการ
local function onPartTouched(object)
print("Part was touched by", object:GetFullName())
end
-- เชื่อมต่อฟังก์ชันกับอีเวนต์ที่แตะของชิ้นส่วน
part.Touched:Connect(onPartTouched)

คุณยังสามารถเชื่อมต่อ ฟังก์ชันอันนุกรม ไปยังเหตุการณ์เมื่อคุณต้องการใช้ตัวแปรในขอบเขตพ่อค้าและไม่จำเป็นต้องใช้ฟังก์ชันที่อื่น เช่นตัวอย่างรหัสนี้ป้องกันการโอนข้อ


local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SaveManager = require(ReplicatedStorage:WaitForChild("SaveManager"))
local function saveProgress(character)
local position = character:FindFirstChild("HumanoidRootPart").Position
SaveManager.saveData(character, position)
end
-- ระบบที่ไม่ระบุที่เรียก saveProgress() เมื่อตัวละครถูกลบ
-- จากประสบการณ์ (ในกรณีนี้เมื่อผู้เล่นออก)
Players.PlayerAdded:Connect(function(player)
player.CharacterRemoving:Connect(saveProgress)
end)

การเชื่อมตัวการใช้งานออกจากเหตุการณ์

วิธีการ Connect() นี้กลับมาที่วัตถุ RBXScriptConnection หากคุณเชื่อมต่อฟังก์ชันกับอีเว้นท์ แต่ไม่

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการเชื่อมต่อและถอดการเชื่อมต่อฟังก์ชันจากเหตุการณ์ Part.Touched


local part = workspace.Part
local targetPart = workspace.TargetPart
-- ระบุตัวแปรเครื่องหมายการเชื่อมต่อที่ว่างเปล่า
local connection
local function onPartTouched(otherPart)
if otherPart == targetPart then
print("The part hit the target!")
-- เชื่อมตัดการเชื่อมต่อ
connection:Disconnect()
end
end
-- เชื่อมต่อการใช้งานด้านบนไปยังเหตุการณ์ที่แตะ
connection = part.Touched:Connect(onPartTouched)

หากคุณต้องการเชื่อมต่อฟังก์ชันเพียงครั้งเดียว—ซึ่งหมายถึงเฉพาะการประมวลผลฟังก์ชันเท่านั้นเมื่อเหตุการณ์เกิดขึ้นครั้งแรก—ใช้วิธีการ Once() เป็นวิธีที่สะด

กําลังรอเหตุการณ์เพื่อปล่อย

หากคุณต้องการให้สคริปต์นี้สร้างจนกว่าจะเกิดเหตุการณ์ที่กำหนดเฉพาะให้ใช้วิธี Wait() นี้ วิธีนี้จะส่งค่าของตัวอีเว้นท์ที่คุณสามารถกำหนดได้ให้แก่แปรเพื่อใช้ในภายหล


local part = workspace.Part
local touchedPart = part.Touched:Wait()
print("The part was touched by", touchedPart:GetFullName())

ประเภทอื่น ๆ ของเหตุการณ์

  • อีเวนต์ที่ผูกได้

    เหตุการณ์ที่ผูกช่วยให้คุณสื่อสารระหว่างสคริปต์ ในด้านเดียวกัน ของเขตเข้าถึงระหว่างเซิร์ฟเวอร์

  • อีเวนต์รีโมท

    กิจกรรมระยะไกลช่วยให้คุณสื่อสาร ระหว่าง ขอบเขตลูกค้า-เซิร์ฟเวอร์