DragDetector
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
Class.DragDetector ตัวอย่างที่เพิ่มความสะดวกและส่งเสริมให้กับวัตถุ 3D ในประสบการณ์ เช่น เปิดประตูและลิ้นชัก เลื่อนส่วนหนึ่งรอบ ๆ และอื่น ๆ อีกมากมาย คุณสมบัติหลักรวมถึง:
วาง DragDetector ภายใต้ BasePart หรือ Model ใด ๆ รหัส(เมาส์, แท็งค์, เกมแพด, และ VR) โดยไม่มีเส้นโค้ดเดียว
เลือกจากตัวเลือกหลาย DragStyle ตัวเลือก, กำหนดวิธีการที่วัตถุตอบสนองต่อการเคลื่อนที่โดย ResponseStyle และใช้ตัวจัดการแกนหรือขีดจำกัดการเคลื่อนที่ได้
สคริปต์สามารถตอบสนองต่อการโดนัสต์วัตถุที่ลากเพื่อขับ UI หรือตัดสินใจโดยมีเหตุผล, เช่นการปรับระดับแสงในห้องโดยใช้สวิตช์ปรับระดับแสงที่ลากได้
ผู้เล่นสามารถจัดการชิ้นส่วนหรือโมเดลที่แนบมาและพวกเขาจะอยู่ที่ถูกต้องเหมือนที่คุณวางไว้เมื่อปล่อย
Class.DragDetector|DragDetectors ทำงานใน Studio นานเท่าที่คุณจะ ไม่ โดยใช้เครื่องมือ เลือก 、 0>ย้าย0> 、 3>ขนาด3> หรือ DragDetectors6> เครื่
ดูการนำเสนอ เครื่องตรวจจับการลาก 3D สำหรับรายละเอียดและตัวอย่างการใช้งาน
สรุป
คุณสมบัติ
ตั้งไอคอนเมาส์ให้เปิดเมื่อเมาส์ถูกเปิดบนพ่อของเรา DragDetector
ว่าจะใช้ความกดขีดในตำแหน่งศูนย์กลางของวัตถุหรือไม่
แกนหลักของการเคลื่อนที่ แสดงเป็นร้อยละของเฟรมอ้างอิง
Datatype.CFrame ของ pivot ขึ้นอยู่กับ ReferenceInstance ของเครื่องมือลากเสา
ระบบจัดการที่ใช้สร้างการเคลื่อนไหวที่เสนอ
ว่า DragDetector ตอบสนองต่อการป้อนข้อมูลของผู้ใช้หรือไม่
ในระหว่างการป้อน gamepad ให้ modifier Enum.KeyCode สำหรับโหมดการเคลื่อนไหวรอง.
ระหว่างการป้อนคีย์บอร์ด ผู้ปรับแต่ง Enum.KeyCode สำหรับโหมดการเคลื่อนไหวรอง
พร้อมกับ MinDragAngle จะป้องกันการพยายามของเครื่องมือตรวจจับการลากเพื่อสร้างการเคลื่อนไหว
พร้อมกับ MinDragTranslation จะป้องกันการพยายามของเครื่องมือลากเพื่อสร้างการเคลื่อนไหว
แรงผลักสูงสุดที่ใช้สำหรับวัตถุเพื่อให้ไปถึงเป้าหมาย
แรงบิดสูงสุดที่ใช้สำหรับวัตถุเพื่อให้ไปถึงเป้าหมาย
พร้อมกับ MaxDragAngle จะป้องกันการพยายามของเครื่องมือตรวจจับการลากเพื่อสร้างการเคลื่อนไหว
พร้อมกับ MaxDragTranslation จะป้องกันการพยายามของเครื่องมือตรวจจับการลากเพื่อสร้างการเคลื่อนไหว
ระบุการหมุนของ YXZ ของแกนของการเคลื่อนไหวเมื่อเป็นสมมติภาพ
ควบคุมระดับการอนุญาตสำหรับผู้เล่นที่สามารถใช้งานกับ DragDetector
ตัวอย่างที่มี CFrame เป็นรูปแบบการอ้างอิงสำหรับเครื่องตรวจจับม้วน
ระบบความคิดที่ใช้เพื่อย้ายหรือไม่ย้ายวัตถุที่ได้รับผลกระทบจากเครื่องตรวจจับการลาก
มูลค่าที่สูงขึ้นทำให้เป้าหมายของคุณถึงเป้าหมายเร็วขึ้น
ว่าการป้อนข้อมูลของผู้ใช้บน DragDetector จะเลียนแบบไปยังเซิร์ฟเวอร์หรือเหลืออยู่ในระดับท้องถิ่นสำหรับลูกค้าที่เฉพาะ
แกนที่รองของการเคลื่อนไหว
หาก DragStyle เป็น Enum.DragDetectorDragStyle.RotateTrackball ตัวคูณสำหรับการเพิ่มการหมุนวงกลมในทิศทางนั้นเป็นส่วนหนึ่งของการบริจาค
หาก DragStyle เป็น Enum.DragDetectorDragStyle.RotateTrackball สำหรับการเพิ่มการหมุนในทั้งหมด
ระหว่างการป้อน VR ผู้ปรับแต่ง Enum.KeyCode สำหรับโหมดการเคลื่อนไหวรอง
The Axis ที่แสดงในพื้นที่โลก
The SecondaryAxis ที่แสดงในพื้นที่โลก
ตั้งไอคอนเมาส์ให้ปรากฏเมื่อเมาส์อยู่เหนือหัวของ ClickDetector หรือ DragDetector
ระยะเวลาสูงสุดระหว่างตัวละครและ ClickDetector หรือ DragDetector สำหรับผู้เล่นที่จะสามารถใช้งานได้
วิธีการ
เพิ่มฟังก์ชันเพื่อปรับแต่งหรือจำกัดการเคลื่อนไหวที่เสนอ
กลับสู่อ้างอิง CFrame ในการเคลื่อนไหวซึ่งสามารถแสดงได้
สามารถเรียกได้จากสคริปต์เพื่อเริ่มการลากโดยใช้ตัวแปรใหม่
ส่งคุณสมบัติให้ใช้ถ้าและเท่านั้นถ้า DragStyle ติดตั้งไว้ที่ Enum.DragDetectorDragStyle.Scriptable
ส่งค่าฟังก์ชันที่จะใช้ถ้าและเท่านั้นถ้า PermissionPolicy ติดตั้งเป็น Enum.DragDetectorPermissionPolicy.Scriptable
อีเวนต์
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : bool):RBXScriptSignal
จะเกิดไฟไหม้เมื่อผู้ใช้ดึงตัววัตถุหลังจากที่ได้เริ่มการดึงเรียบร้อยแล้วหลังจากนี้จะเริ่มขึ้นมา DragStart ได้
เกิดขึ้นเมื่อผู้ใช้หยุดลากวัตถุ
เกิดขึ้นเมื่อผู้ใช้เริ่มลากวัตถุ
จะเกิดขึ้นเมื่อผู้เล่นใช้งานกับพ่อของ ClickDetector หรือ DragDetector
เกิดเหตุผิดพลาดเมื่อผู้ปกครองของ ClickDetector หรือ DragDetector ถูกวางบนโดยผู้เล่น
จะเกิดขึ้นเมื่อผู้เล่นไม่ได้เป็นเจ้าของ ClickDetector หรือ DragDetector พ่อ
กระตุ้นเมื่อผู้เล่นคลิกเมาส์ของพวกเขาบน ClickDetector หรือ DragDetector
คุณสมบัติ
ActivatedCursorIcon
ตั้งไอคอนเมาส์ให้เป็นแสดงเมื่อเปิดเมาส์เหนือพ่อของคลาสนี้ หากปล่อยว่างไว้นี้ไม่ได้ ตัวนี้จะใช้ไอคอนเริ่มต้น
เพื่อเปลี่ยนไอคอนเมาส์ที่เปิดใช้งาน ให้ตั้งค่าสมบัติรหัสของรูปภาพที่คุณต้องการใช้
ApplyAtCenterOfMass
เมื่อปลอม (ปกติ) การบังคับการใช้งานถูกประยุกต์ที่จุดที่ผู้ใช้คลิก เมื่อใช้ปลอม การบังคับการใช้งานจะประยุกต์ไปยังศูนย์กลางของวัตถุ เฉพาะเมื่อ Class
DragFrame
หากตั้งค่า ReferenceInstance จะกำหนด CFrame ของ pivot ในแนวคิดเหมาะสมกับโค้ดอ้างอิง; อย่างอื่น, CFrame ของ pivot ในแนวคิดเหมาะสมกับโค้ดอ้างอ
DragStyle
ร่างกายที่ใช้ในการสร้างการเคลื่อนไหวที่เสนอได้รับการจัดเรียงของเลเซอร์สตรีม ดู Enum.DragDetectorDragStyle สำหรับตัวเลือก
GamepadModeSwitchKeyCode
ในระหว่างการป้อน gamepad ให้การป้อน Enum.KeyCode เท่านั้น ใช้ได้เฉพาะเมื่อเครื่องมือลากเส้นสตรีกประกอบด้วยโหมดการเคลื่อนไหวหลักและรอง
KeyboardModeSwitchKeyCode
ในระหว่างการป้อนตัวอักษรบนเครื่องป้อนของคุณ, Enum.KeyCode สำหรับการเปิด/ปิดโหมดการเคลื่อนไหวรอง ใช้ได้เฉพาะกับเมื่อเครื่องป้อนเริ่มต้นด้วยโหมดการเคลื่อนไหวหลักและรอง
MaxDragAngle
หากขนาดนี้ใหญ่กว่า MinDragAngle การแปลจะถูกกดในช่วงนั้น
นี่ไม่ใช่ข้อจํากัด; มันเพียงแค่ป้องกันการพยายามของเครื่องตรวจจับการลากเพื่ออยู่ภายใต้ขีดจำกัด ดู AddConstraintFunction() เพื่อเพิ่มข้อจํากัดเฉพาะกับการลาก
เฉพาะเมื่อ DragStyle เป็น Enum.DragDetectorDragStyle.RotateAxis
MaxDragTranslation
ในมิติใด ๆ หากขนาดนี้ใหญ่กว่า MinDragTranslation การแปลจะถูกกดในขอบเขตนั้น
นี่ไม่ใช่ข้อจํากัด; มันเพียงแค่ป้องกันการพยายามของเครื่องตรวจจับการลากเพื่ออยู่ภายใต้ขีดจำกัด ดู AddConstraintFunction() เพื่อเพิ่มข้อจํากัดเฉพาะกับการลาก
MaxForce
ใช้แรงผลักสูงสุดสำหรับวัตถุเพื่อให้ไปถึงเป้าหมาย มีเฉพาะเมื่อ ResponseStyle เป็น Enum.DragDetectorResponseStyle.Physical และพ่อแม่วัตถุไม่มีอายุ
MaxTorque
แรงบิดสูงสุดที่ใช้สำหรับวัตถุเพื่อให้ไปถึงเป้าหมาย มีเฉพาะเมื่อ ResponseStyle เป็น Enum.DragDetectorResponseStyle.Physical และพ่อวัตถุไม่มีอายุการใช้งาน
MinDragAngle
หากค่านี้น้อยกว่า MaxDragAngle การแปลจะถูกกดในช่วงนั้น
นี่ไม่ใช่ข้อจํากัด; มันเพียงแค่ป้องกันการพยายามของเครื่องตรวจจับการลากเพื่ออยู่ภายใต้ขีดจำกัด ดู AddConstraintFunction() เพื่อเพิ่มข้อจํากัดเฉพาะกับการลาก
เฉพาะเมื่อ DragStyle เป็น Enum.DragDetectorDragStyle.RotateAxis
MinDragTranslation
ในมิติใด ๆ หาก MaxDragTranslation น้อยกว่านี้ การแปลจะถูกกดในช่วงนั้น
นี่ไม่ใช่ข้อจํากัด; มันเพียงแค่ป้องกันการพยายามของเครื่องตรวจจับการลากเพื่ออยู่ภายใต้ขีดจำกัด ดู AddConstraintFunction() เพื่อเพิ่มข้อจํากัดเฉพาะกับการลาก
Orientation
ระบุการหมุนของแกนของการเคลื่อนไหวที่เกี่ยวข้องกับเฟรมอ้างอิง (ไม่เปลี่ยนตำแหน่งของเฟรมอ้างอิงเอง) การแปลสายเกียร์และการหม
PermissionPolicy
ควบคุมระดับการอนุญาตสำหรับผู้เล่นที่สามารถใช้งานกับ DragDetector ปกติคือ Enum.DragDetectorPermissionPolicy.Everybody .
ReferenceInstance
ตัวอย่างที่มี CFrame เป็นเค้าโครงการอ้างอิงสำหรับเครื่องตรวจจับม้วน DragFrame ถูกแสดงโดยความสัมพันธ์กับ CFrame ซึ
หากตัวอย่างนี้เป็น PVInstance จะเป็นเค้าโครงของอ้างอิง; หากเป็น Attachment จะเป็นโลกของ Datatype.C
ResponseStyle
เมื่อคำนวณความเคลื่อนไหวที่เสนอแนะแล้วและอาจจะจำกัด นี่คือระเบียบาดาลในการเคลื่อนย้าย, หรือไม่เคลื่อนย้าย, วัตถุที่ได้รับผลกระทบโดย DragDetector ดูที่ Enum.DragDetectorResponseStyle</
Responsiveness
มูลค่าที่สูงขึ้นทำให้เป้าหมายไปถึงเป้าหมายเร็วขึ้น มีผลเฉพาะกับ ResponseStyle เท่านั้น และมีค่าพ่อของเป้าหมายที่ไม่สามารถแนบได้
RunLocally
หากเป็นเช่นนั้น (ปกติ), ลูกค้าส่งสัญญาณที่เลียนแบบ ( DragStart , DragContinue , DragEnd ) ไปยังเซิร์ฟเวอร
หากเป็นเช่นนั้น, ลูกค้าประมวลผลสัญญาณเหล่านี้ด้วยตัวเองและไม่ส่งต่อไปยังเซิร์ฟเวอร์ ลูกค้า LocalScripts สามารถใช้เพื่อตอบสนองต่อเหตุการณ์เหล่านี้แ
SecondaryAxis
แกนรองของการเคลื่อนไหว เกี่ยวข้องกับการจัดเรียงตำแหน่งโดยใช้ร่างโมเดลเดียวกับ Attachments
TrackballRadialPullFactor
เมื่อเลื่อนเมาส์อยู่นอกเส้นทาง, DragDetector สามารถใช้การหมุนวงกลมที่เหมือนกับว่ากำลังพยายามที่จะม้วนลูกบอลไปยังเส้
TrackballRollFactor
เมื่อเลื่อนอยู่นอกเส้นทาง เมาส์สามารถใช้การหมุนวงล้อที่ทำให้ลูกบอลเหมือนว่ามันอยู่บนแผ่นเสียงที่หน้าต่างผู้ชม สิ่งน
VRSwitchKeyCode
ในระหว่างการป้อน VR คุณสามารถเปลี่ยนโหมดการเคลื่อนไหวได้ Enum.KeyCode สำหรับการเปิด/ปิดโหมดการเคลื่อนไหวรอง เฉพาะกรณีที่เครื่องตรวจจับการลากเป็นไปในโหมดการเคลื
WorldAxis
The Axis ที่แสดงในพื้นที่โลก เกี่ยวข้องกับการจัดเรียงตำแหน่งโดยใช้ร่างการของ Attachments เช่นกัน
WorldSecondaryAxis
The SecondaryAxis แสดงในพื้นที่โลก เกี่ยวข้องกับการจัดเรียงตำแหน่งโดยใช้ร่างประกายเดียวกับ Attachments
วิธีการ
AddConstraintFunction
เพิ่มฟังก์ชันเพื่อปรับแต่งหรือจำกัดการเคลื่อนที่เสนอไว้ ฟังก์ชันใช้ข้อมูล CFrame ของการเคลื่อนที่เสนอ
เพื่อลบคุณสมบัติที่เพิ่มเข้ามา โปรดเรียก Disconnect() ในตัวเอกสารการเชื่อมต่อที่กลับมา
พารามิเตอร์
ลำดับความสามารถที่มีความสำคัญสูงสุดสำหรับการเพิ่มผ่านวิธีนี้ มีค่ามากกว่าลำดับความสามารถที่ต่ำกว่า
ส่งค่ากลับ
ใช้วัตถุการเชื่อมต่อนี้เพื่อลบคุณสมบัติ
GetReferenceFrame
กลับสู่ส่วนที่อ้างอิง CFrame ในการเคลื่อนไหวที่กำหนดไว้; ดูส่วนที่มีประสิทธิภาพ ReferenceInstance สำหรับรายละเอียดเพิ่มเติม
ส่งค่ากลับ
RestartDrag
อาจเรียกจากสคริปต์เพื่อเริ่มการลากโดยใช้พารามิเตอร์ใหม่หากพารามิเตอร์เช่น DragStyle หรือ Axis หรือ SecondaryAxis เปลี่ย
ส่งค่ากลับ
SetDragStyleFunction
ส่งค่าฟังก์ชันที่จะใช้เฉพาะถ้าและเท่านั้นถ้า DragStyle ติดตั้งไว้ที่ En
หากคุณสมบัติกลับมาเป็น nil ไม่ได้เคลื่อนย้ายไปยังตำแหน่งเดิม หากสคริปต์ยังไม่ได้รวบรวมข้อมูลทั้งหมดที่ต้องให้คำตอบที่ถูกต้อง หรือในกรณีที่คุณต้องการให้ตัวอักษรอยู่ที่เดิ
พารามิเตอร์
ระบบสำหรับการตรวจสอบ DragContinue สัญญาณ ระบบนี้ได้รับเลเซอร์เวิลด์สเปซคูเกอร์ของสัญญาณและส่งคืนเป็น CFrame ที่มีตำแหน่งและ
ส่งค่ากลับ
SetPermissionPolicyFunction
local dragDetector = script.Parent.DragDetector
dragDetector.PermissionPolicy = Enum.DragDetectorPermissionPolicy.Scriptable
dragDetector:SetPermissionPolicyFunction(function(player, part)
if player and player:GetAttribute("IsInTurn") then
return true
elseif part and not part:GetAttribute("IsDraggable") then
return false
else
return true
end
end)
พารามิเตอร์
ระบบสำหรับการตั้งค่าความสามารถของเครื่องตรวจจับ
ส่งค่ากลับ
อีเวนต์
DragContinue
จะเกิดไฟไหม้เมื่อผู้ใช้ดึงตัววัตถุหลังจากที่ได้เริ่มการดึงเรียบร้อยแล้วหลังจากนี้จะเริ่มขึ้นมา DragStart ได้
พารามิเตอร์
หากใช้อุปกรณ์ป้อน VR CFrame ของมือที่กดเมาส์/ป้อน/ควบคุม
หากเครื่องตรวจจับการลากมีโหมดการเคลื่อนที่หลักและรอง ประการนี้ตัวประการใดประการหนึ่งจะระบุว่าผู้ใ
DragEnd
เกิดขึ้นเมื่อผู้ใช้หยุดลากวัตถุ
พารามิเตอร์
DragStart
เกิดขึ้นเมื่อผู้ใช้เริ่มลากวัตถุ
พารามิเตอร์
เค้าโครงการโหมดของตัวเลือกผู้ลากที่เริ่มการลาก
ส่วนที่ถูกแสงเลเซอร์ที่เริ่มต้นการลาก
หากใช้อุปกรณ์ป้อน VR CFrame ของมือที่กดเมาส์/ป้อน/ควบคุม
หากเครื่องตรวจจับการลากมีโหมดการเคลื่อนที่หลักและรอง ประการนี้ตัวประการใดประการหนึ่งจะระบุว่าผู้ใ