UIDragDetector

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

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

ตัวอย่าง UIDragDetector ช่วยให้การโต้ตอบและส่งเสริมการโต้ตอบกับองค์ประกอบอินเทอร์เฟซผู้ใช้ 2D ในประสบการณ์ เช่น สไลเดอร์และสปินเนอร์คุณสมบัติสําคัญรวมถึง:

  • วาง UIDragDetector ภายใต้ตัวอย่างใดๆ GuiObject รหัส

  • เลือกจากตัวเลือกหลาย DragStyle ตัว กำหนดวิธีที่วัตถุตอบสนองต่อการเคลื่อนไหวผ่าน ResponseStyle และใช้ตัวเลือกเพิ่มเติมเช่นเพลา ขีดจํากัดการเคลื่อนที่ หรือขอบเขตการลาก

  • สคริปต์สามารถตอบสนองต่อการควบคุมวัตถุที่ลากไปเพื่อขับเคลื่อนการตอบสนองตามเหตุผล เช่น ปรับการตั้งค่า

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

สรุป

คุณสมบัติ

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

    ตั้งไอคอนเคอร์เซอร์ให้แสดงเมื่อเมาส์ถูกเปิดใช้งานบนพ่อของนี้ UIDragDetector

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

    กำหนดพฤติกรรมการผูกของวัตถุ UI ที่ลากเมื่อตัวตรวจจับ BoundingUI ถูกตั้งค่า

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

    ตัวอย่างที่พื้นที่ผูกขัดกำหนดขอบเขตการลากสําหรับพ่อ GuiObject .

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

    ตั้งไอคอนเคอร์เซอร์ให้แสดงเมื่อเมาส์เลื่อนเหนือพ่อของนี้ UIDragDetector

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

    แกนลากสำหรับตัวอย่าง UIDragDetector เมื่อ DragStyle ถูกตั้งค่าเป็น Enum.UIDragDetectorDragStyle.TranslateLine

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

    ตั้งพาราดิเมียที่กำหนดความสัมพันธ์ของอินพุต/เอาต์พุตจากฟังก์ชันการลากที่กําหนดเอง

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

    การหมุนที่ดำเนินการโดยการลากปัจจุบัน

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

    ตั้งพาราดิมที่กำหนดพื้นที่ของอินพุต/เอาต์พุตจากฟังก์ชันลากที่กําหนดเอง

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

    แนวคิดที่ใช้ในการสร้างการเคลื่อนไหวที่เสนอ

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

    การแปลที่ดำเนินการโดยการลากปัจจุบันที่แสดงในค่า UDim2 ค่า

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

    ว่า UIDragDetector ตอบสนองต่อการป้อนของผู้ใช้หรือไม่

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

    ร่วมกับ MinDragAngle ขัดขวางการพยายามของเครื่องตรวจจับในการสร้างการเคลื่อนไหวแบบหมุน

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

    ร่วมกับ MinDragTranslation ขัดขวางความพยายามของเครื่องตรวจจับในการสร้างการเคลื่อนไหวเชิงเส้น/เรียบ

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

    ร่วมกับ MaxDragAngle ขัดขวางการพยายามของเครื่องตรวจจับในการสร้างการเคลื่อนไหวแบบหมุน

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

    ร่วมกับ MaxDragTranslation ขัดขวางความพยายามของเครื่องตรวจจับในการสร้างการเคลื่อนไหวเชิงเส้น/เรียบ

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

    ตัวอย่าง GuiObject ที่มีพื้นที่ท้องถิ่นและตำแหน่งศูนย์กลางสัมบูรณ์เป็นพื้นที่อ้างอิงและจุดเริ่มต้นสำหรับตัวตรวจจับ

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

    รูปแบบที่ใช้ในการกำหนดการตอบสนองต่อคำขอที่เสนอ

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

    ความเร็วในการลากสูงสุดสำหรับการแปล

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

    มุมสูงสุดต่อวินาทีที่ UIDragDetector สามารถหมุนได้

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

    Enum.UIDragSpeedAxisMapping ค่าที่กำหนดความเร็วในการลากมิติ X / Y

วิธีการ

อีเวนต์

  • เกิดไฟไหม้เมื่อผู้ใช้ดึงองค์ประกอบ UI ต่อไปหลังจากที่ DragStart ได้รับการเริ่มต้นแล้ว

  • เกิดไฟไหม้เมื่อผู้ใช้หยุดลากองค์ประกอบ UI

  • เกิดไฟไหม้เมื่อผู้ใช้เริ่มลากองค์ประกอบ UI

คุณสมบัติ

ActivatedCursorIcon

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

ตั้งไอคอนเคอร์เซอร์ให้แสดงเมื่อเมาส์ถูกเปิดใช้งานบนพ่อของนี้ UIDragDetectorหากคุณสมบัตินี้ว่างเปล่า เครื่องตรวจจะใช้ไอคอนเริ่มต้น

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

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

กำหนดพฤติกรรมการผูกของวัตถุ UI ที่ลากเมื่อตัวตรวจจับ BoundingUI ถูกตั้งค่า ดู Enum.UIDragDetectorBoundingBehavior สำหรับรายละเอียดเกี่ยวกับพฤติกรรมของแต่ละการตั้งค่า

BoundingUI

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

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

CursorIcon

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

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

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

DragAxis

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

Vector2 ค่าที่กำหนดเส้นทางการเคลื่อนที่สำหรับวัตถุที่ลากมาเมื่อ DragStyle ถูกตั้งค่าเป็น Enum.UIDragDetectorDragStyle.TranslateLineแกนจะกำหนดในพื้นที่ท้องถิ่นของ UIDragDetector เว้นแต่ ReferenceUIInstance จะกำหนดไว้ อินสแตนซ์

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

ใช้ได้เฉพาะถ้าฟังก์ชันลากที่กําหนดเองลงทะเบียนผ่าน SetDragStyleFunction() หรือ AddConstraintFunction()ตั้งพาราดิเมียที่กำหนดความสัมพันธ์ของอินพุต/เอาต์พุตของฟังก์ชันที่ลงทะเบียนไว้

ตัวอย่างเช่นการส่งคืน UDim2.fromOffset(1, 0) จากฟังก์ชันที่ลงทะเบียนด้วยคุณสมบัตินี้กำหนดเป็น Enum.UIDragDetectorDragRelativity.Absolute จะย้ายผู้ปกครองของเครื่องตรวจจับไปยัง **** ในสถานที่ที่กำหนด (1, 0) ในขณะที่ส่งคืนเดียวกันกับคุณสมบัตินี้กำหนดเป็น DragSpace ในสถานที่ที่กำหนด UDim2 จะย้ายผู้ปกครองของเครื่องตรวจจับไปยัง Enum.UIDragDetectorDragRelativity.Relative ในสถานที่ที่กำหนด **** ในสถานที่ที่กำหนด (1, 0) ในสถานที่ที่กำหนด DragSpace

DragRotation

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

การหมุนที่ดำเนินการโดยการลากปัจจุบันค่านี้กำหนดไว้ในองศาเมื่อเทียบกับพื้นที่ท้องถิ่นของ UIDragDetector ยกเว้น ReferenceUIInstance ถูกกำหนด ในกรณีนั้นการหมุนจะกำหนดในพื้นที่ท้องถิ่นของตัวอย่างนั้นและจากแกนเชิงบวก X คุณสมบัตินี้สามารถเปลี่ยนแปลงได้โดยไม่มีการลากที่ใช้งานเพื่อหมุนวัตถุที่ลาก

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

ใช้ได้เฉพาะถ้าฟังก์ชันลากที่กําหนดเองลงทะเบียนผ่าน SetDragStyleFunction() หรือ AddConstraintFunction()ตั้งพาราดิมที่กำหนดพื้นที่ของอินพุต/เอาต์พุตของฟังก์ชันที่ลงทะเบียนไว้

ตัวอย่างเช่น หากพ่อของเครื่องตรวจจับ GuiObject เป็นลูกของพ่อ GuiObject ที่หมุนแล้ว:

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

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

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

รูปแบบที่ใช้ในการสร้างการเคลื่อนไหวที่เสนอโดยให้มีสตรีมของเวกเตอร์ตำแหน่งอินพุต ดู Enum.UIDragDetectorDragStyle สำหรับตัวเลือก

DragUDim2

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

การแปลที่ดำเนินการโดยการลากปัจจุบันที่แสดงในค่า UDim2 ค่าการแปลทำผ่าน Offset หรือ Scale การเปลี่ยนแปลงค่าขึ้นอยู่กับค่า DragRelativity และมันเป็นค่าที่เกี่ยวข้องกับพื้นที่ท้องถิ่นของเครื่องตรวจจับยกเว้นถ้า ReferenceUIInstance ไม่ได้ถูกกำหนด

คุณสมบัตินี้สามารถเปลี่ยนแปลงได้ในขณะที่ไม่มีการลากที่ใช้งานเพื่อย้ายวัตถุที่ลาก

Enabled

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

หาก true , UIDragDetector ตอบสนองต่อการป้อนของผู้ใช้; หาก false , มันไม่ทำ

MaxDragAngle

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

หากคุณสมบัตินี้มากกว่า MinDragAngle ความหมุนจะถูกจำกัดภายในช่วงของ MinDragAngle และ MaxDragAngleมูลค่าบวกขัดขวางการหมุนไปตามเข็มนาฬิกาในขณะที่มูลค่าลบขัดขวางการหมุนไปในทิศทางตรงกันข้าม

นี่ไม่ใช่ข้อจำกัด; มันเพียงแค่ขัดขวางความพยายามของเครื่องตรวจจับในการสร้างการเคลื่อนไหวเพื่ออยู่ภายในขอบเขตเท่านั้นดู AddConstraintFunction() เพื่อเพิ่มข้อจํากัดที่กําหนดเองให้กับการลาก

เกี่ยวข้องเฉพาะถ้า DragStyle เป็น Enum.UIDragDetectorDragStyle.Rotate

MaxDragTranslation

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

หากค่าตัวตรงกัน Offset และ/หรือ Scale มีมากกว่าค่าของ MinDragTranslation ในทุกมิติ การแปลเชิงเส้น/เรียบจะถูกจำกัดภายในช่วงของ MinDragTranslation และ MaxDragTranslation

นี่ไม่ใช่ข้อจำกัด; มันเพียงแค่ขัดขวางความพยายามของเครื่องตรวจจับในการสร้างการเคลื่อนไหวเพื่ออยู่ภายในขอบเขตเท่านั้นดู AddConstraintFunction() เพื่อเพิ่มข้อจํากัดที่กําหนดเองให้กับการลาก

เกี่ยวข้องเฉพาะถ้า DragStyle เป็น Enum.UIDragDetectorDragStyle.TranslateLine หรือ Enum.UIDragDetectorDragStyle.TranslatePlane .

MinDragAngle

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

หากคุณสมบัตินี้น้อยกว่า MaxDragAngle การหมุนจะถูกจำกัดภายในช่วงของ MinDragAngle และ MaxDragAngleมูลค่าบวกขัดขวางการหมุนไปตามเข็มนาฬิกาในขณะที่มูลค่าลบขัดขวางการหมุนไปในทิศทางตรงกันข้าม

นี่ไม่ใช่ข้อจำกัด; มันเพียงแค่ขัดขวางความพยายามของเครื่องตรวจจับในการสร้างการเคลื่อนไหวเพื่ออยู่ภายในขอบเขตเท่านั้นดู AddConstraintFunction() เพื่อเพิ่มข้อจํากัดที่กําหนดเองให้กับการลาก

เกี่ยวข้องเฉพาะถ้า DragStyle เป็น Enum.UIDragDetectorDragStyle.Rotate

MinDragTranslation

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

หากค่าที่ตรงกัน Offset และ/หรือ Scale มีน้อยกว่าค่าของ MaxDragTranslation ในทุกมิติ การแปลเชิงเส้น/เรียบจะถูกจำกัดภายในช่วงของ MinDragTranslation และ MaxDragTranslation

นี่ไม่ใช่ข้อจำกัด; มันเพียงแค่ขัดขวางความพยายามของเครื่องตรวจจับในการสร้างการเคลื่อนไหวเพื่ออยู่ภายในขอบเขตเท่านั้นดู AddConstraintFunction() เพื่อเพิ่มข้อจํากัดที่กําหนดเองให้กับการลาก

เกี่ยวข้องเฉพาะถ้า DragStyle เป็น Enum.UIDragDetectorDragStyle.TranslateLine หรือ Enum.UIDragDetectorDragStyle.TranslatePlane .

ReferenceUIInstance

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

ตัวอย่าง GuiObject ที่มีพื้นที่ท้องถิ่นและตำแหน่งศูนย์กลางสัมบูรณ์เป็นพื้นที่อ้างอิงและจุดเริ่มต้นสำหรับตัวตรวจจับการตั้งค่าการอ้างอิงนี้มีผลต่อคุณสมบัติเช่น DragUDim2 , DragRotation และพฤติกรรมของ DragAxis

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

เมื่อโมชันที่เสนอถูกคำนวณและอาจถูกจำกัดแล้ว รูปแบบนี้จะถูกใช้เพื่อกำหนดวิธีการย้าย (หรือไม่ย้าย) ที่ได้รับผลกระทบจาก GuiObject โดย UIDragDetectorดู Enum.UIDragDetectorResponseStyle สำหรับตัวเลือก

SelectionModeDragSpeed

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

กำหนดความเร็วสูงสุดในการลากสําหรับการแปลเป็นการรวมของ Scale และ Offset ของบรรพบุรุษคนแรก ScreenGui หรือ SurfaceGui ที่เป็นของ UIDragDetectorค่านี้ต้องเป็นบวกและค่าใดๆ ที่ต่ำกว่า 0 จะถูกขัดขวางเป็น 0

SelectionModeRotateSpeed

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

กำหนดมุมสูงสุดต่อวินาทีที่ UIDragDetector สามารถหมุนได้ค่านี้ต้องเป็นบวกและค่าใดๆ ที่ต่ำกว่า 0 จะถูกขัดขวางเป็น 0

UIDragSpeedAxisMapping

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

Enum.UIDragSpeedAxisMapping ค่าที่กำหนดความเร็วในการลากมิติ X / Y

วิธีการ

AddConstraintFunction

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

การใส่ข้อมูลจะถูกแสดงในพื้นที่ที่กำหนดโดยคุณสมบัติ DragSpace เป็นเดลต้าหรือตำแหน่ง/การหมุนที่ต้องการสุดท้ายตามคุณสมบัติ DragRelativityผลผลิตควรแสดงในพื้นที่และความสัมพันธ์เดียวกัน ยกเว้นถูกแทนที่โดยการส่งค่ากลับที่กำหนด Enum.UIDragDetectorDragRelativity และ Enum.UIDragDetectorDragSpace เป็นค่าการคืนที่สามและที่สี่

เพื่อลบฟังก์ชันข้อจํากัดที่เพิ่มเข้ามา โทร Disconnect() ที่วัตถุเชื่อมต่อที่คืนกลับ

พารามิเตอร์

priority: number

ลําดับความสําคัญสําหรับฟังก์ชันที่เพิ่มผ่านวิธีนี้ ค่าที่สูงกว่ามีลําดับความสําคัญสูงกว่าค่าที่ต่ํากว่า

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

ฟังก์ชันสำหรับการแก้ไขหรือจำกัดการเคลื่อนไหวที่เสนอฟังก์ชันนี้รับอินพุต UDim2 และลอยของ เสนอ ความเคลื่อนไหวและส่งคืน UDim2 และลอยของ แก้ไข หรือไม่ได้แก้ไขความเคลื่อนไหวมันสามารถส่งคืนได้ตามต้องการ Enum.UIDragDetectorDragRelativity และ Enum.UIDragDetectorDragSpace เป็นค่าการคืนค่าที่สามและที่สี่ในฐานะการแทนที่การออกผล

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

ส่งค่ากลับ

ใช้วัตถุการเชื่อมต่อนี้เพื่อลบฟังก์ชันข้อจำกัด

GetReferencePosition

เมื่อไม่มี ReferenceUIInstance ถูกตั้งค่าไว้ ฟังก์ชันนี้จะคืนตำแหน่ง UDim2 ของบรรพบุรุษทันทีของวัตถุที่ลากไป GuiObject (ถ้ามี) หรือตำแหน่ง UDim2 ของวัตถุที่ลากไป

เมื่อตั้งค่า ReferenceUIInstance แล้วฟังก์ชันนี้จะคืนตำแหน่ง UDim2 อินสแตนซ์


ส่งค่ากลับ

UDim2 ตำแหน่งขององค์ประกอบอ้างอิงของการลากปัจจุบัน

GetReferenceRotation

เมื่อไม่มี ReferenceUIInstance ถูกตั้งค่าไว้ ฟังก์ชันนี้จะคืนการหมุนของพ่อลูกโดยตรงของวัตถุที่ลากไป GuiObject (ถ้ามี) หรือการหมุนของวัตถุที่ลากไป

เมื่อตั้งค่า ReferenceUIInstance แล้ว อินสแตนซ์


ส่งค่ากลับ

การหมุนองค์ประกอบอ้างอิงของการลากปัจจุบัน

SetDragStyleFunction

()

ส่งฟังก์ชันที่จะใช้หากและเฉพาะหาก DragStyle ถูกตั้งค่าเป็น Enum.UIDragDetectorDragStyle.Scriptableฟังก์ชันที่กำหนดได้รับตำแหน่งพื้นที่หน้าจอสัญญาณด้วยประเภท Vector2 และส่งคืนตำแหน่ง UDim2 (ตำแหน่ง) และลอยตัว (การหมุน) ที่มีการเคลื่อนไหวที่ต้องการของการลากพื้นที่ของค่ากลับและความเร็วในการเคลื่อนที่จะถูกกำหนดโดยคุณสมบัติ และ ยกเว้นถ้าถูกแทนที่ด้วยการส่งค่ากลับที่กำหนดไว้เป็นค่ากลับที่สามและสี่

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

พารามิเตอร์

function: function

ฟังก์ชันสำหรับการตรวจสอบสัญญาณ DragContinueฟังก์ชันนี้ได้รับตำแหน่งการรับส่งพื้นที่หน้าจอของสัญญาณและส่งคืน UDim2 และลอยตัวที่มีการเคลื่อนไหวที่ต้องการของการลากในพื้นที่และความเร็วแสงที่ต้องการหากฟังก์ชันนี้返回 nil วัตถุจะไม่ถูกย้าย

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

ส่งค่ากลับ

()

อีเวนต์

DragContinue

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

พารามิเตอร์

inputPosition: Vector2

Vector2 แทนตำแหน่งการป้อนข้อมูลปัจจุบัน


DragEnd

เกิดไฟไหม้เมื่อผู้ใช้หยุดลากองค์ประกอบ UI

พารามิเตอร์

inputPosition: Vector2

Vector2 แทนตำแหน่งการป้อนข้อมูลปัจจุบัน


DragStart

เกิดไฟไหม้เมื่อผู้ใช้เริ่มลากองค์ประกอบ UI

พารามิเตอร์

inputPosition: Vector2

Vector2 แทนตำแหน่งการป้อนข้อมูลปัจจุบัน