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
  • CursorIcon:ContentId
    อ่านพร้อมๆ กัน

    ตั้งไอคอนเมาส์ให้ปรากฏเมื่อเมาส์อยู่เหนือหัวของ ClickDetector หรือ DragDetector

  • อ่านพร้อมๆ กัน

    ระยะเวลาสูงสุดระหว่างตัวละครและ ClickDetector หรือ DragDetector สำหรับผู้เล่นที่จะสามารถใช้งานได้

วิธีการ

อีเวนต์

  • DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : bool):RBXScriptSignal

    จะเกิดไฟไหม้เมื่อผู้ใช้ดึงตัววัตถุหลังจากที่ได้เริ่มการดึงเรียบร้อยแล้วหลังจากนี้จะเริ่มขึ้นมา DragStart ได้

  • DragEnd(playerWhoDragged : Player):RBXScriptSignal

    เกิดขึ้นเมื่อผู้ใช้หยุดลากวัตถุ

  • DragStart(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,hitFrame : CFrame,clickedPart : BasePart,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : bool):RBXScriptSignal

    เกิดขึ้นเมื่อผู้ใช้เริ่มลากวัตถุ

อีเวนต์รับทอดมาจากClickDetector

คุณสมบัติ

ActivatedCursorIcon

ContentId
อ่านพร้อมๆ กัน

ตั้งไอคอนเมาส์ให้เป็นแสดงเมื่อเปิดเมาส์เหนือพ่อของคลาสนี้ หากปล่อยว่างไว้นี้ไม่ได้ ตัวนี้จะใช้ไอคอนเริ่มต้น

เพื่อเปลี่ยนไอคอนเมาส์ที่เปิดใช้งาน ให้ตั้งค่าสมบัติรหัสของรูปภาพที่คุณต้องการใช้

ApplyAtCenterOfMass

อ่านพร้อมๆ กัน

เมื่อปลอม (ปกติ) การบังคับการใช้งานถูกประยุกต์ที่จุดที่ผู้ใช้คลิก เมื่อใช้ปลอม การบังคับการใช้งานจะประยุกต์ไปยังศูนย์กลางของวัตถุ เฉพาะเมื่อ Class

ไม่ซ้ำ
อ่านพร้อมๆ กัน

แกนหลักของการเคลื่อนไหวสัญลักษณ์เฉพาะสำหรับ DragStyle ของ Enum

DragFrame

อ่านพร้อมๆ กัน

หากตั้งค่า ReferenceInstance จะกำหนด CFrame ของ pivot ในแนวคิดเหมาะสมกับโค้ดอ้างอิง; อย่างอื่น, CFrame ของ pivot ในแนวคิดเหมาะสมกับโค้ดอ้างอ

อ่านพร้อมๆ กัน

ร่างกายที่ใช้ในการสร้างการเคลื่อนไหวที่เสนอได้รับการจัดเรียงของเลเซอร์สตรีม ดู Enum.DragDetectorDragStyle สำหรับตัวเลือก

Enabled

อ่านพร้อมๆ กัน

ถ้าเป็นเช่นนั้น, DragDetector ตอบสนองต่อการป้อนข้อมูลของผู้ใช้; ถ้าเป็นเช่นนั้น, ไม่ได้.

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

อ่านพร้อมๆ กัน

ระบุการหมุนของแกนของการเคลื่อนไหวที่เกี่ยวข้องกับเฟรมอ้างอิง (ไม่เปลี่ยนตำแหน่งของเฟรมอ้างอิงเอง) การแปลสายเกียร์และการหม

อ่านพร้อมๆ กัน

ควบคุมระดับการอนุญาตสำหรับผู้เล่นที่สามารถใช้งานกับ DragDetector ปกติคือ Enum.DragDetectorPermissionPolicy.Everybody .

ReferenceInstance

อ่านพร้อมๆ กัน

ตัวอย่างที่มี CFrame เป็นเค้าโครงการอ้างอิงสำหรับเครื่องตรวจจับม้วน DragFrame ถูกแสดงโดยความสัมพันธ์กับ CFrame ซึ

หากตัวอย่างนี้เป็น PVInstance จะเป็นเค้าโครงของอ้างอิง; หากเป็น Attachment จะเป็นโลกของ Datatype.C

อ่านพร้อมๆ กัน

เมื่อคำนวณความเคลื่อนไหวที่เสนอแนะแล้วและอาจจะจำกัด นี่คือระเบียบาดาลในการเคลื่อนย้าย, หรือไม่เคลื่อนย้าย, วัตถุที่ได้รับผลกระทบโดย 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() ในตัวเอกสารการเชื่อมต่อที่กลับมา

พารามิเตอร์

priority: number

ลำดับความสามารถที่มีความสำคัญสูงสุดสำหรับการเพิ่มผ่านวิธีนี้ มีค่ามากกว่าลำดับความสามารถที่ต่ำกว่า

function: function

การใช้งานสำหรับการเปลี่ยนแปลงหรือจำกัดการเคลื่อนไหวที่เสนอไว้ ฟังก์ชันนี้รับการป้อนข้อมูล CFrame ของการเคลื่อนไหวที่เสนอและส่งกลับฟังก์ชัน Dat


ส่งค่ากลับ

ใช้วัตถุการเชื่อมต่อนี้เพื่อลบคุณสมบัติ

GetReferenceFrame

กลับสู่ส่วนที่อ้างอิง CFrame ในการเคลื่อนไหวที่กำหนดไว้; ดูส่วนที่มีประสิทธิภาพ ReferenceInstance สำหรับรายละเอียดเพิ่มเติม


ส่งค่ากลับ

การอ้างอิง CFrame ในการเคลื่อนไหวซึ่งสามารถแสดงได้

RestartDrag

void

อาจเรียกจากสคริปต์เพื่อเริ่มการลากโดยใช้พารามิเตอร์ใหม่หากพารามิเตอร์เช่น DragStyle หรือ Axis หรือ SecondaryAxis เปลี่ย


ส่งค่ากลับ

void

SetDragStyleFunction

void

ส่งค่าฟังก์ชันที่จะใช้เฉพาะถ้าและเท่านั้นถ้า DragStyle ติดตั้งไว้ที่ En

หากคุณสมบัติกลับมาเป็น nil ไม่ได้เคลื่อนย้ายไปยังตำแหน่งเดิม หากสคริปต์ยังไม่ได้รวบรวมข้อมูลทั้งหมดที่ต้องให้คำตอบที่ถูกต้อง หรือในกรณีที่คุณต้องการให้ตัวอักษรอยู่ที่เดิ

พารามิเตอร์

function: function

ระบบสำหรับการตรวจสอบ DragContinue สัญญาณ ระบบนี้ได้รับเลเซอร์เวิลด์สเปซคูเกอร์ของสัญญาณและส่งคืนเป็น CFrame ที่มีตำแหน่งและ


ส่งค่ากลับ

void

SetPermissionPolicyFunction

void

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)

พารามิเตอร์

function: function

ระบบสำหรับการตั้งค่าความสามารถของเครื่องตรวจจับ


ส่งค่ากลับ

void

อีเวนต์

DragContinue

จะเกิดไฟไหม้เมื่อผู้ใช้ดึงตัววัตถุหลังจากที่ได้เริ่มการดึงเรียบร้อยแล้วหลังจากนี้จะเริ่มขึ้นมา DragStart ได้

พารามิเตอร์

playerWhoDragged: Player

Class.Player ผู้เริ่มการลากผ่าน DragStart และกำลังดำเนินการลากต่อไป

cursorRay: Ray

Ray เปล่งออกมาจากเมาส์ มุ่งหมายไปยังฉาก

viewFrame: CFrame

CFrame ของผู้ใช้ Camera ของผู้ใช้

vrInputFrame: OptionalCoordinateFrame

หากใช้อุปกรณ์ป้อน VR CFrame ของมือที่กดเมาส์/ป้อน/ควบคุม

isModeSwitchKeyDown: bool

หากเครื่องตรวจจับการลากมีโหมดการเคลื่อนที่หลักและรอง ประการนี้ตัวประการใดประการหนึ่งจะระบุว่าผู้ใ


DragEnd

เกิดขึ้นเมื่อผู้ใช้หยุดลากวัตถุ

พารามิเตอร์

playerWhoDragged: Player

Class.Player ผู้เริ่มการลากผ่าน DragStart และได้สิ้นสุดการลากแล้ว (เปิดตัว)


DragStart

เกิดขึ้นเมื่อผู้ใช้เริ่มลากวัตถุ

พารามิเตอร์

playerWhoDragged: Player

Player ผู้เริ่มการลาก

cursorRay: Ray

Ray เปล่งออกมาจากเมาส์ มุ่งหมายไปยังฉาก

viewFrame: CFrame

CFrame ของผู้ใช้ Camera ของผู้ใช้

hitFrame: CFrame

เค้าโครงการโหมดของตัวเลือกผู้ลากที่เริ่มการลาก

clickedPart: BasePart

ส่วนที่ถูกแสงเลเซอร์ที่เริ่มต้นการลาก

vrInputFrame: OptionalCoordinateFrame

หากใช้อุปกรณ์ป้อน VR CFrame ของมือที่กดเมาส์/ป้อน/ควบคุม

isModeSwitchKeyDown: bool

หากเครื่องตรวจจับการลากมีโหมดการเคลื่อนที่หลักและรอง ประการนี้ตัวประการใดประการหนึ่งจะระบุว่าผู้ใ