Workspace

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

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

ไม่สามารถสร้าง
บริการ

งานหลักของ Workspace คือการจัดเก็บวัตถุที่มีอยู่ในโลก 3D อย่างมีประสิทธิภาพ BaseParts และ Attachmentsในขณะที่วัตถุดังกล่าวเป็นลูกหลานของ Workspace พวกเขาจะเป็นที่ใช้งานสำหรับ BaseParts นี่หมายความว่าพวกเขาจะถูกแสดงและโต้ตอบทางกายภาพกับส่วนอื่นๆ และโลกสำหรับ Attachments , นี่หมายความว่าวัตถุที่ตกแต่งให้พวกเขา เช่น ParticleEmitters , Beams และ BillboardGuis จะแสดงผล

การเข้าใจพฤติกรรมนี้เป็นสิ่งสำคัญเนื่องจากหมายความว่าวัตถุสามารถถูกลบออกจาก Workspace เมื่อไม่จำเป็นตัวอย่างเช่น แผนที่ Models สามารถถูกลบออกเมื่อแผนที่อื่นถูกเล่นบนวัตถุที่ไม่จำเป็นในโลก 3D ทันทีมักจะถูกเก็บไว้ใน ReplicatedStorage หรือ ServerStorage

ในบทบาทของผู้ถือวัตถุ 3D ที่ใช้งานอยู่ Workspace รวมถึงจำนวนฟังก์ชันที่มีประโยชน์ที่เกี่ยวข้องกับชิ้นส่วนตำแหน่งและข้อต่อระหว่างพวกเขา

การเข้าถึงพื้นที่ทำงาน

Workspace สามารถเข้าถึงได้หลายวิธีทั้งหมดซึ่งถูกต้อง

  • workspace
  • game:GetService("Workspace")
  • game.Workspace
บันทึก
  • วัตถุที่ต้องการการตกแต่ง เช่น ParticleEmitters และ BillboardGuis จะอยู่ในตำแหน่ง (0, 0, 0) เมื่อถูกถ่ายโอนไปยัง Workspace โดยไม่มีการตกแต่งอื่น ๆ ตั้งค่า
  • วิธี Model:MakeJoints() และ Model:BreakJoints() ที่มีการมรดกจากคลาส Model ถูกแทนที่โดย Workspace:MakeJoints() และ Workspace:BreakJoints() ซึ่งสามารถใช้ได้เฉพาะในปลั๊กอิน
  • ไม่สามารถลบ Workspace ได้
  • Workspace ทำความสะอาดอัตโนมัติ BaseParts ที่ตกอยู่ใต้ FallenPartsDestroyHeight
  • วัตถุปัจจุบันของไคลเอนต์สามารถเข้าถึงได้โดยใช้คุณสมบัติ Camera ของ Workspace.CurrentCamera
  • วัตถุ Terrain สามารถเข้าถึงได้โดยใช้คุณสมบัติ Workspace.Terrain

สรุป

คุณสมบัติ

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

    ความหนาแน่นของอากาศในระดับพื้นดินที่ใช้ในรูปแบบแรงอากาศ

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

    กำหนดว่าสินทรัพย์ที่สร้างโดยผู้ใช้รายอื่นสามารถขายได้ในเกมหรือไม่

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • อ่านพร้อมๆ กัน

    กำหนดโหมดการจำกัดอัตราการเร่งแอนิเมชั่นสำหรับไคลเอนต์ท้องถิ่น

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

    วัตถุ Camera ที่ใช้โดยผู้เล่นท้องถิ่น

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

    จํานวนเวลาในวินาทีที่เกมทํางานอยู่

  • การรักษาความปลอดภัยของปลั๊กอิน
    อ่านพร้อมๆ กัน
  • การรักษาความปลอดภัยของปลั๊กอิน
    อ่านพร้อมๆ กัน

    กำหนดความสูงที่ตก BaseParts และบรรพบุรุษของพวกเขา Models ถูกลบออกจาก Workspace

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

    กำหนดว่าเครื่องกลศาสตร์คำนวณแรงอากาศได้หรือไม่บน BaseParts ที่มีคุณสมบัติ EnableFluidForces เป็นจริง

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

    ระบุเวกเตอร์ลมระดับโลกสำหรับหญ้าพื้นที่เคลื่อนไหว เมฆไดนามิก และอนุภาค

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

    กำหนดการเร่งความเร็วเนื่องจากแรงโน้มถ่วงที่ใช้กับการลดลง BaseParts

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

    เปิดใช้งานการสนับสนุนข้อจํากัดสําหรับ IKControls หากปิดใช้งาน IKControls จะเพิกเฉยข้อจํากัดทางกายภาพ

  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน
  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

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

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

    ควบคุมโลจิสติกที่ใช้เพื่อเลือกส่วนรากของการประกอบเมื่อใช้ข้อจํากัดเคลื่อนที่ใดๆ

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

    กำหนดวิธีที่ตัวแก้ปัญหาจะเร่งการจำลองทางฟิสิกส์ไปข้างหน้าในเวลา

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • อ่านพร้อมๆ กัน
  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

    กำหนดค่าเมื่อเครื่องยนต์เริ่มต้นการจัดการเหตุการณ์อีกครั้ง

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

    กำหนดวิธีที่เครื่องยนต์ตัดสินใจเมื่อจะสตรีมเนื้อหาออกจากผู้เล่น

  • การรักษาความปลอดภัยของปลั๊กอิน
    อ่านพร้อมๆ กัน

    ว่าการสตรีมเนื้อหาจะเปิดใช้งานสำหรับสถานที่หรือไม่

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

    กำหนดว่า StreamingIntegrityMode จะใช้งานอยู่หรือไม่

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

    ระยะขั้นต่ำที่เนื้อหาจะถูกสตรีมไปยังผู้เล่นที่มีความสําคัญสูง

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

    ระยะสูงสุดที่เนื้อหาจะถูกสตรีมไปยังผู้เล่น

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    การอ้างอิงถึงวัตถุ Terrain ที่ถูกผูกกับ Workspace เป็นพ่อ

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

    กำหนดว่า parts ในกลุ่มที่แตกต่างกันที่ตั้งไว้เพื่อไม่ให้ชนกันจะเพิกเฉยการชนกันและการสัมผัสเหตุการณ์

คุณสมบัติรับทอดมาจากModel
  • การรักษาความปลอดภัยของปลั๊กอิน
    อ่านพร้อมๆ กัน

    ตั้งระดับรายละเอียดบนโมเดลสำหรับประสบการณ์ที่มีการสตรีมตัวอย่างเปิดใช้งาน

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

    ควบคุมพฤติกรรมการสตรีมรูปแบบบน Models เมื่อการสตรีมตัวอย่างถูกเปิดใช้งาน

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

    ส่วนหลักของ Model หรือ nil ตั้งค่า

  • ไม่ซ้ำ
    ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

    คุณสมบัติสำหรับเอดิเตอร์เท่านั้นที่ใช้เพื่อขยายโมเดลรอบจุดศูนย์กลางของมัน การตั้งค่าคุณสมบัตินี้จะเคลื่อนย้ายเครื่องชั่งเหมือนว่า Model/ScaleTo ถูกเรียกใช้บนมัน

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

    กำหนดตำแหน่งที่ศูนย์กลางของ ซึ่งไม่ได้มีชุด ตั้งอยู่

คุณสมบัติรับทอดมาจากPVInstance
  • ไม่ซ้ำ
    ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • ไม่ซ้ำ
    ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

วิธีการ

  • เขียนพร้อมๆ กัน

    คืนจํานวน BaseParts ที่ถูกมองว่ามีการใช้งานทางกายภาพเนื่องจากอยู่ภายใต้อิทธิพลของฟิสิกส์เมื่อเร็ว ๆ นี้

  • เขียนพร้อมๆ กัน

    คืนตัวเลขที่อยู่ระหว่าง 0 และ 100 ซึ่งแทนที่เปอร์เซ็นต์ของการจำลองทางกายภาพที่กําลังถูกจํากัดในเวลาจริง

  • เขียนพร้อมๆ กัน

    คืนจํานวนเฟรมต่อวินาทีที่ฟิสิกส์กําลังถูกจําลองอยู่ในขณะนี้

  • เขียนพร้อมๆ กัน

    restores เวลา Unix ของเซิร์ฟเวอร์ในวินาที

  • JoinToOutsiders(objects : Instances,jointType : Enum.JointCreationMode):()

    สร้างข้อต่อระหว่าง Parts ที่กำหนดและส่วนใดก็ได้ที่สัมผัสขึ้นอยู่กับพื้นผิวของชิ้นส่วนและโหมดการสร้างข้อต่อที่กำหนด

  • ส่งคืน true หากเกมมีตัวแก้ไขฟิสิกส์ PGS เปิดใช้งาน

  • UnjoinFromOutsiders(objects : Instances):()

    ทำลายข้อต่อทั้งหมดระหว่าง BaseParts และอื่น ๆ BaseParts ที่ระบุ

  • การรักษาความปลอดภัยของปลั๊กอิน

    ตำแหน่งและซูม Workspace.CurrentCamera เพื่อแสดงขนาดของ BaseParts ในปัจจุบันใน Workspace

วิธีการรับทอดมาจากWorldRoot
  • ArePartsTouchingOthers(partList : Instances,overlapIgnored : number):boolean

    ส่งคืนจริงหากใดๆ ของที่กำหนด BasePart สัมผัสกับส่วนอื่น

  • Blockcast(cframe : CFrame,size : Vector3,direction : Vector3,params : RaycastParams):RaycastResult?
    เขียนพร้อมๆ กัน

    โค้งรูปแบบบล็อกในทิศทางที่กำหนดและส่งคืน RaycastResult หากรูปแบบชนกับเซลล์ BasePart หรือ Terrain

  • BulkMoveTo(partList : Instances,cframeList : Array,eventMode : Enum.BulkMoveMode):()

    ย้ายโต๊ะของ BaseParts ไปยังโต๊ะของ CFrames

  • GetPartBoundsInBox(cframe : CFrame,size : Vector3,overlapParams : OverlapParams):Instances
    เขียนพร้อมๆ กัน

    คืนค่าเป็นคอลเลกชันของชิ้นส่วนที่มีกล่องผูกข้อมูล ซ้อนทับกล่องที่กำหนด

  • GetPartBoundsInRadius(position : Vector3,radius : number,overlapParams : OverlapParams):Instances
    เขียนพร้อมๆ กัน

    คืนค่าเป็นคอลเลกชันของชิ้นส่วนที่มีกล่องผูกข้อมูล ซึ่งซ้อนทับทรงกลมที่กำหนด

  • GetPartsInPart(part : BasePart,overlapParams : OverlapParams):Instances
    เขียนพร้อมๆ กัน

    ส่งคืนคอลเลกชันของชิ้นส่วนที่พื้นที่ใช้งานแบ่งปันกับชิ้นส่วนที่กำหนดไว้

  • IKMoveTo(part : BasePart,target : CFrame,translateStiffness : number,rotateStiffness : number,collisionsMode : Enum.IKCollisionsMode):()
    การรักษาความปลอดภัยของปลั๊กอิน

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

  • Raycast(origin : Vector3,direction : Vector3,raycastParams : RaycastParams):RaycastResult?
    เขียนพร้อมๆ กัน

    โค้งรัศมีโดยใช้จุดเริ่มต้น ทิศทาง และ RaycastParams ตัวเลือก จากนั้นจะส่งคืน RaycastResult หากวัตถุหรือพื้นที่ที่เหมาะสมตัดกับรัศมี

  • Shapecast(part : BasePart,direction : Vector3,params : RaycastParams):RaycastResult?
  • Spherecast(position : Vector3,radius : number,direction : Vector3,params : RaycastParams):RaycastResult?
    เขียนพร้อมๆ กัน

    โค้งรูปทรงกลมในทิศทางที่กำหนดและส่งคืน RaycastResult หากรูปทรงชนกับเซลล์ BasePart หรือ Terrain

  • StepPhysics(dt : number,parts : Instances):()
    การรักษาความปลอดภัยของปลั๊กอิน

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

วิธีการรับทอดมาจากModel
  • AddPersistentPlayer(playerInstance : Player):()

    ตั้งค่าโมเดลนี้ให้เป็นถาวรสำหรับผู้เล่นที่ระบุModel.ModelStreamingMode ต้องตั้งค่าเป็น PersistentPerPlayer เพื่อให้พฤติกรรมเปลี่ยนแปลงเนื่องจากการเพิ่ม

  • คืนคำอธิบายของระดับที่มีส่วนประกอบทั้งหมดของโมเดล

  • คืนขนาดของกล่องล้อมรอบขนาดเล็กที่มีทั้งหมด BaseParts ใน Model สอดคล้องกับ Model.PrimaryPart หากกำหนดไว้

  • คืนวัตถุทั้งหมด Player ที่วัตถุรูปแบบนี้มีอยู่อย่างถาวรพฤติกรรมแตกต่างกันขึ้นอยู่กับว่าวิธีนี้ถูกเรียกจาก Script หรือ LocalScript หรือไม่

  • ส่งคืนเครื่องชั่งหลักของโมเดลซึ่งเริ่มต้นที่ 1 สำหรับโมเดลที่สร้างขึ้นใหม่และจะเปลี่ยนเมื่อมันถูกขยายผ่าน Model/ScaleTo

  • MoveTo(position : Vector3):()

    ย้าย PrimaryPart ไปยังตำแหน่งที่กำหนด หากส่วนหลักไม่ได้ระบุไว้ ส่วนรากของโมเดลจะถูกใช้

  • RemovePersistentPlayer(playerInstance : Player):()

    ทำให้โมเดลนี้ไม่ยังคงอยู่สำหรับผู้เล่นที่ระบุแล้วModel.ModelStreamingMode ต้องตั้งค่าเป็น PersistentPerPlayer เพื่อให้พฤติกรรมเปลี่ยนแปลงเนื่องจากการลบ

  • ScaleTo(newScaleFactor : number):()

    ตั้งตัวคูณขนาดของโมเดลโดยปรับขนาดและตำแหน่งของโอนุการทั้งหมดเพื่อให้มีตัวคูณขนาดเท่ากับขนาดและตำแหน่งเดิมเมื่อตัวคูณขนาดอยู่ที่ 1

  • TranslateBy(delta : Vector3):()

    เปลี่ยน Model โดยออฟเซ็ตที่กำหนด Vector3 เพื่อรักษาการจัดตำแหน่งของรูปแบบหากอีก BasePart หรือ Terrain มีอยู่แล้วในตำแหน่งใหม่แล้ว ตัว Model จะซ้อนบนวัตถุที่กล่าวถึง

วิธีการรับทอดมาจากPVInstance
  • เขียนพร้อมๆ กัน

    รับจุดศูนย์กลางของ PVInstance .

  • PivotTo(targetCFrame : CFrame):()

    เปลี่ยน PVInstance พร้อมกับบรรดาลูกหลานทั้งหมดของมัน PVInstances ทำให้จุดศูนย์กลางอยู่ที่ตําแหน่งที่ระบุแล้ว CFrame

อีเวนต์

คุณสมบัติ

AirDensity

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

ระดับพื้นดิน ( Y ของ 0) ความหนาแน่นของอากาศในหน่วย RMU/stud³ (ดู หน่วย Roblox ), ใช้เพื่อคำนวณแรงอากาศถ้า Workspace.FluidForces เป็น Experimentalค่าเริ่มต้นสอดคล้องกับความหนาแน่นของอากาศระดับทะเลที่เป็นจริงที่อุณหภูมิและความดันมาตรฐานความหนาแน่นของอากาศลดลงเมื่อความสูง Y เพิ่มขึ้น ถึง 5% ของมูลค่าระดับพื้นดินที่ 100,000 สตัดด้านล่าง Y ของ 0 ความหนาแน่นของอากาศจะถูกกำหนดไว้ที่ค่าอินพุต

AllowThirdPartySales

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

คุณสมบัตินี้ Workspace จะกำหนดว่าสินทรัพย์ที่สร้างขึ้นโดยการใช้งานอื่นสามารถขายได้ในเกมหรือไม่

การขายของบุคคลที่สามคืออะไร?

เมื่อค่านี้เป็นเท็จเนื่องจากเป็นค่าเริ่มต้น เฉพาะสินทรัพย์ที่สร้างโดยผู้สร้างสถานที่ (ไม่ว่าจะเป็นผู้เล่นหรือกลุ่ม) และ Roblox สามารถขายได้โดยใช้ MarketplaceService

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

ผลิตภัณฑ์บุคคลที่สามอะไรที่ฉันสามารถขายได้?

โปรดทราบว่า ผลิตภัณฑ์นักพัฒนา สามารถขายได้เฉพาะในเกมที่พวกเขาเกี่ยวข้องเท่านั้น ไม่ว่า AllowThirdPartySales จะถูกตั้งค่าเป็นอย่างไรคุณสมบัตินี้มีผลต่อ บัตรผ่านเกม และ เสื้อผ้า

AvatarUnificationMode

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

ClientAnimatorThrottling

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

ระบุ Enum.ClientAnimatorThrottlingMode ที่จะใช้สำหรับไคลเอนต์ท้องถิ่น

เมื่อเปิดใช้งานแล้ว แอนิเมชั่นบนตัวอย่างที่จำลองไกล Model จะเริ่มลดความเร็วด้วย:

  • การมองเห็นของ Model ในความสัมพันธ์กับ Camera
  • ยิงมุมมองบุคคลที่หนึ่งในเกม
  • จํานวนแอนิเมชั่นที่ใช้งานอยู่

CurrentCamera

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

วัตถุ Camera ที่ใช้โดยผู้เล่นท้องถิ่น

วิธีใช้กล้องปัจจุบัน

เมื่อมองหาวัตถุของไคลเอนต์ Camera ใช้คุณสมบัตินี้แทนที่จะมองหาลูกของ Workspace ที่ชื่อว่า "กล้อง"

เมื่อคุณตั้งค่าคุณสมบัตินี้, วัตถุทั้งหมดอื่น ๆ Camera ใน Workspace จะถูกทําลาย, รวมถึงก่อนหน้านี้ CurrentCameraหากคุณตั้งค่าคุณสมบัตินี้เป็น nil หรือไปยังกล้องที่ไม่ใช่ลูกหลานของพื้นที่ทำงาน (หรือ CurrentCamera ไม่ได้ถูกทําลายอย่างอื่น) จะมีการสร้างและกำหนด Camera ใหม่หลีกเลี่ยงสถานการณ์เหล่านี้ เนื่องจากการทำลายกล้องอาจมีผลกระทบที่ไม่คาดคิด

สำหรับข้อมูลเพิ่มเติม ดู สคริปต์กล้อง

DistributedGameTime

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

จํานวนเวลาในวินาทีที่เกมทํางานอยู่

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

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

ผู้ที่กำลังมองหาเวลาตั้งแต่โปรแกรมเริ่มทำงานควรใช้ฟังก์ชัน 'time' แทนดูด้านล่างสำหรับการเปรียบเทียบระหว่าง DistributedGameTime และทางเลือกอื่นๆ


local Workspace = game:GetService("Workspace")
print(Workspace.DistributedGameTime) -- Time the game started running
print(os.time()) -- Time since epoch (1 January 1970, 00:00:00) UTC
print(tick()) -- Time since epoch (1 January 1970, 00:00:00) system time
print(time()) -- Time the game started running
print(elapsedTime()) -- Time since Roblox started running

FallHeightEnabled

การรักษาความปลอดภัยของปลั๊กอิน
อ่านพร้อมๆ กัน

FallenPartsDestroyHeight

การรักษาความปลอดภัยของปลั๊กอิน
อ่านพร้อมๆ กัน

คุณสมบัตินี้กำหนดความสูงที่ Roblox เครื่องยนต์จะลบอย่างอัตโนมัติ BaseParts และบรรพบุรุษของพวกเขา Models จาก Workspace โดยการปลูกฝังพวกเขาให้กับ nilเพื่อป้องกันไม่ให้ชิ้นส่วนที่ล้มออกจากแผนที่ยังคงล้มตลอดไป

หากชิ้นส่วนถูกลบเนื่องจากพฤติกรรมนี้เป็นชิ้นส่วนสุดท้ายใน Model โมเดลก็จะถูกลบเช่นกันสิ่งนี้ใช้กับบรรพบุรุษรุ่นทั้งหมดของชิ้นส่วน

คุณสมบัตินี้ถูกขัดขวางระหว่าง -50,000 และ 50,000 เพราะ BaseParts ไม่ได้จำลองหรือแสดงอย่างถูกต้องในระยะไกลจากจุดเริ่มต้นเนื่องจากความไม่ถูกต้องของจุดทศนิยม

คุณสมบัตินี้สามารถอ่านโดยสคริปต์ แต่สามารถตั้งค่าได้เฉพาะโดยปลั๊กอิน แถบคําสั่ง หรือหน้าต่างคุณสมบัติใน Studio

FluidForces

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

ด้วยคุณสมบัตินี้เปิดใช้งานแล้ว เครื่องกลศาสตร์จะคำนวณแรงอากาศพลศาสตร์บน BaseParts ที่คุณสมบัติ EnableFluidForces เป็นจริงค่าเริ่มต้น, Default , ปิดใช้งานแรงอากาศพลศาสตร์โปรดทราบว่าคุณสมบัตินี้ไม่สามารถตั้งผ่านการเขียนสคริปต์ได้ แต่ต้องเปิดใช้งานใน Studio แทน

GlobalWind

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

คุณสมบัตินี้ระบุทิศทางและความแรงที่ลมพัดผ่านประสบการณ์ ซึ่งส่งผลต่อหญ้าพื้นที่ เมฆไดนามิก และอนุภาคดูบทความ ลมทั่วโลก สำหรับรายละเอียด

Gravity

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

กำหนดการเร่งความเร็วเนื่องจากแรงโน้มถ่วงที่ใช้กับการลดลง BasePartsค่านี้จะวัดเป็นสตัดต่อวินาทีและโดยปกติจะตั้งค่าเป็น 196.2 สตัดต่อวินาที 2โดยการเปลี่ยนค่านี้ ผู้พัฒนาสามารถจำลองผลกระทบของแรงโน้มถ่วงที่ต่ำกว่าหรือสูงกว่าในเกม

ตัวอย่างโค้ด

This script creates a touch pad in the workspace that, when touched, will reduce the game's gravity. Activating the pad again will switch back to normal gravity.

Low Gravity Button

local MOON_GRAVITY_RATIO = 1.62 / 9.81
local DEFAULT_GRAVITY = 196.2
local MOON_GRAVITY = DEFAULT_GRAVITY * MOON_GRAVITY_RATIO
-- Create a touch pad
local pad = Instance.new("Part")
pad.Size = Vector3.new(5, 1, 5)
pad.Position = Vector3.new(0, 0.5, 0)
pad.Anchored = true
pad.BrickColor = BrickColor.new("Bright green")
pad.Parent = workspace
-- Listen for pad touch
local enabled = false
local debounce = false
local function onPadTouched(_hit)
if not debounce then
debounce = true
enabled = not enabled
workspace.Gravity = enabled and MOON_GRAVITY or DEFAULT_GRAVITY
pad.BrickColor = enabled and BrickColor.new("Bright red") or BrickColor.new("Bright green")
task.wait(1)
debounce = false
end
end
pad.Touched:Connect(onPadTouched)

IKControlConstraintSupport

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

เปิดใช้งานการสนับสนุนข้อจํากัดสําหรับ IKControlsค่า Default มีค่าเท่ากับ Enabled .หากปิดใช้งาน IKControls จะเพิกเฉยข้อจำกัดด้านฟิสิกส์ดู IKControl สำหรับรายละเอียดเพิ่มเติม

InsertPoint

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

MeshPartHeadsAndAccessories

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

ตั้งค่าว่าหัวตัวละครและอุปกรณ์เสริมควรดาวน์โหลดเป็น MeshPartsค่า Default มีค่าเท่ากับ Enabled .หากคุณลักษณะนี้เปิดใช้งานแล้ว อวตารที่ติดตั้งจะใช้ MeshParts สำหรับหัวของตัวละครและอุปกรณ์เสริม

ModelStreamingBehavior

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

MoverConstraintRootBehavior

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

ควบคุมโลจิสติกที่ใช้เพื่อเลือกส่วนรากของการประกอบสำหรับเครื่องมือที่ใช้ข้อจำกัดใดๆ ต่อไปนี้:

เมื่อคุณสร้างคุณสมบัตินี้เป็น Enum.MoverConstraintRootBehaviorMode.Enabled ความจํากัดเหล่านี้จะถูกเพิกเฉยเมื่อเลือกส่วนรากของการรวมถ้าข้อจํากัดไม่ส่งแรงระหว่างสองส่วน (ตัวอย่างบางส่วนคือ AngularVelocity.ReactionTorqueEnabled ตั้งค่าเป็น false , AlignPosition.ReactionForceEnabled ตั้งค่าเป็น false หรือ AlignOrientation.Mode ตั้งค่าเป็น Enum.OrientationAlignmentMode.OneAttachment )

เมื่อคุณสร้างคุณสมบัตินี้เป็น Enum.MoverConstraintRootBehaviorMode.Disabled ข้อจํากัดเหล่านี้อาจถูกพิจารณาผิดพลาดเมื่อเลือกส่วนรากของการรวบรวมทำให้เกิดการเป็นเจ้าของเครือข่ายไม่สอดคล้องและความล่าช้าเมื่อเพิ่มข้อจํากัดเหล่านี้ให้กับเครื่องมือ

PathfindingUseImprovedSearch

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

PhysicsImprovedSleep

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

PhysicsSteppingMethod

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

กำหนดวิธีที่ตัวแก้ปัญหาจะเร่งการจำลองทางฟิสิกส์ไปข้างหน้าในเวลาตัวเลือกนี้ไม่สามารถสคริปต์ได้และต้องตั้งค่าจากคุณสมบัติ PhysicsSteppingMethod ของ พื้นที่ทำงาน ภายใน Studioดู การจับเวลาแบบปรับตัว สำหรับรายละเอียด


<th>คําอธิบาย</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>การปรับตัว</b></td>
<td>เครื่องยนต์พยายามกำหนดอัตราการจำลองที่เหมาะสมสำหรับชิ้นส่วนแต่ละชิ้นที่ 240 Hz, 120 Hz หรือ 60 Hzการตั้งค่านี้จะได้รับการปรับแต่งเพื่อประสิทธิภาพ</td>
</tr>
<tr>
<td><b>แก้ไข</b></td>
<td>ชิ้นส่วนจำลองทั้งหมดภายในพื้นที่ทำงานจะเคลื่อนไปข้างหน้าที่ความถี่ 240 Hz ตัวเลือกนี้เหมาะสำหรับความเสถียรและความแม่นยำในการจำลองที่ดีที่สุด</td>
</tr>
<tr>
<td><b>ค่าเริ่มต้น</b></td>
<td>ค่าเริ่มต้นปัจจุบันคือ <b>แก้ไข</b></td>
</tr>
</tbody>
ตัวเลือก

โปรดทราบว่าเมื่อชิ้นส่วนของอัตราการจำลองที่แตกต่างกันเชื่อมต่อผ่าน Constraints หรือการชนกัน เครื่องมือรวมจะเริ่มต้นด้วยอัตราการจำลองสูงสุดสำหรับความเสถียร

PlayerCharacterDestroyBehavior

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

PrimalPhysicsSolver

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

RejectCharacterDeletions

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

RenderingCacheOptimizations

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

ReplicateInstanceDestroySetting

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน
อ่านพร้อมๆ กัน

SandboxedInstanceMode

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

SignalBehavior

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

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

สำหรับข้อมูลเพิ่มเติม ดู กิจกรรมถูกเลื่อนออก

StreamOutBehavior

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

การควบคุม StreamOutBehavior ที่จะปลดเนื้อหาออกจากอุปกรณ์ตามเงื่อนไขหน่วยความจําอุปกรณ์ หรือตามรัศมีการสตรีม

ดูเพิ่ม:

StreamingEnabled

การรักษาความปลอดภัยของปลั๊กอิน
อ่านพร้อมๆ กัน

คุณสมบัติ StreamingEnabled กำหนดว่าการสตรีมเนื้อหาเกมจะเปิดใช้งานสำหรับสถานที่หรือไม่คุณสมบัตินี้ไม่สามารถสคริปต์ได้และจึงต้องตั้งค่าในวัตถุ พื้นที่ทำงาน ใน Studio

ดูเพิ่ม:

StreamingIntegrityMode

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

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

StreamingMinRadius

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

คุณสมบัติ StreamingMinRadius บ่งบอกรัศมีรอบตัวละครของผู้เล่นหรือ ReplicationFocus ปัจจุบันที่เนื้อหาจะถูกสตรีมในลําดับความสําคัญสูงสุดค่าเริ่มต้นเป็น 64 สตัด

ควรใช้ความระมัดระวังเมื่อเพิ่มรัศมีขั้นต่ำเริ่มต้นเนื่องจากการทำเช่นนั้นจะต้องใช้หน่วยความจำเพิ่มเติมและความถี่ของเซิร์ฟเวอร์เพิ่มเติมในค่าใช้จ่ายของส่วนประกอบอื่น

ดูเพิ่ม:

StreamingTargetRadius

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

คุณสมบัติ StreamingTargetRadius ควบคุมระยะสูงสุดที่ห่างจากตัวละครของผู้เล่นหรือปัจจุบัน ReplicationFocus ในซึ่งเนื้อหาจะถูกสตรีมค่าเริ่มต้นเป็น 1024 สตัด

โปรดทราบว่าเครื่องยนต์สามารถเก็บเนื้อหาที่โหลดไว้ก่อนหน้านี้นอกรัศมีเป้าหมายได้ ตามที่หน่วยความจําอนุญาต

ดูเพิ่ม:

Terrain

อ่านอย่างเดียว
ไม่ซ้ำ
อ่านพร้อมๆ กัน

คุณสมบัตินี้เป็นการอ้างอิงถึงวัตถุ Terrain ที่เป็นพ่อของ Workspace

Terrain object within the Workspace hierarchy

ดู พื้นที่สภาพแวดล้อม สำหรับข้อมูลเพิ่มเติม

TouchEventsUseCollisionGroups

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

TouchesUseCollisionGroups

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

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

เมื่อคุณสมบัตินี้เปิดใช้งานแล้ว ส่วนในกลุ่มที่แตกต่างกันที่ตั้งค่าให้ไม่ชนกันจะเพิกเฉยคุณสมบัติ CanTouch เช่นเดียวกับวิธีที่ BasePart.CanCollide ถูกเพิกเฉยสำหรับข้อมูลเพิ่มเติมเกี่ยวกับพฤติกรรมของ CanTouch โปรดไปที่หน้าทรัพย์สินของมัน

วิธีการ

GetNumAwakeParts

เขียนพร้อมๆ กัน

คืนจํานวน BaseParts ที่ถูกมองว่ามีการใช้งานทางกายภาพเนื่องจากอยู่ภายใต้อิทธิพลของฟิสิกส์เมื่อเร็ว ๆ นี้

ฟังก์ชันนี้ให้มาตรวัดว่ามีกี่ BaseParts ที่ได้รับอิทธิพลจากหรือเมื่อเร็ว ๆ นี้อยู่ภายใต้อิทธิพลของพลังกายกายภาพ


local Workspace = game:GetService("Workspace")
print(Workspace:GetNumAwakeParts())

การนอนหลับกับชิ้นส่วนที่ตื่นตัว

การดำเนินการRoblox ตั้ง BaseParts ซึ่งไม่มีการใช้ฟิสิกส์ในสถานะ 'หลับ'BaseParts กับ BasePart.Anchored ตั้งค่าเป็นจริงเสมอเนื่องจากไม่มีการใช้ฟิสิกส์กับพวกเขาเมื่อใช้แรงกับ non anchored BasePart จะมีการใช้สถานะ 'ตื่น'ในขณะที่ BasePart ยังคงตื่นอยู่ เครื่องกลศาสตร์ของ Roblox จะดำเนินการคำนวณอย่างต่อเนื่องเพื่อให้แน่ใจว่าแรงกายภาพโต้ตอบกับชิ้นส่วนอย่างถูกต้องเมื่อ BasePart ไม่อยู่ภายใต้แรงกระทําทางกายภาพอีกต่อไป มันจะกลับสู่สถานะ 'หลับ'


ส่งค่ากลับ

จํานวนชิ้นส่วนที่ตื่นอยู่

GetPhysicsThrottling

เขียนพร้อมๆ กัน

คืนตัวเลขที่อยู่ระหว่าง 0 และ 100 ซึ่งแทนที่เปอร์เซ็นต์ของการจำลองทางกายภาพที่กําลังถูกจํากัดในเวลาจริง

ฟังก์ชันนี้สามารถใช้เพื่อตรวจสอบว่าการชะลอตัวของฟิสิกส์เกิดขึ้นหรือไม่ และในระดับใด

การจํากัดความเร็วของฟิสิกส์คืออะไร?

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

โดยไม่ต้องลดความเร็ว การจำลองฟิสิกส์จะตกอยู่ข้างหลังเกมออกไปอีกสิ่งนี้อาจนำไปสู่อัตราเฟรมที่ต่ำกว่าและพฤติกรรมที่ไม่พึงประสงค์อื่นๆ

วัตถุที่เกี่ยวข้องกับ Humanoids จะได้รับการยกเว้นจากการลดอัตราการเร่งของฟิสิกส์

ดูเพิ่มเติม Workspace:SetPhysicsThrottleEnabled() .

สาธิตการลดความเร็วของฟิสิกส์

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


local Workspace = game:GetService("Workspace")
local i = 0
while true do
i += 1
if i % 5 == 0 then
task.wait()
end
local part = Instance.new("Part", Workspace)
end

ส่งค่ากลับ

เปอร์เซ็นต์ของเวลาจริงที่การจำลองฟิสิกส์กําลังถูกจํากัดอยู่ในขณะนี้

GetRealPhysicsFPS

เขียนพร้อมๆ กัน

คืนจํานวนเฟรมต่อวินาทีที่ฟิสิกส์กําลังถูกจําลองอยู่ในขณะนี้

ใช้ GetRealPhysicsFPS เพื่อต่อสู้กับผู้ใช้งานที่ละเมิด

การใช้งานทั่วไปของฟังก์ชันนี้คือการตรวจสอบว่าผู้โจมตีกำลังเพิ่มอัตราเฟรมทางกายภาพท้องถิ่นของพวกเขาเพื่อเคลื่อนที่ได้เร็วขึ้นส่วนใหญ่จะทำโดยการเปรียบเทียบผลลัพธ์ที่ได้รับจาก GetRealPhysicsFPS ของไคลเอนต์กับสูงสุดที่จะไม่ถูกละเมิดในสถานการณ์ปกติ (โดยปกติ 65 หรือ 70)หากขีดจํากัดนี้ถูกละเมิด ผู้พัฒนาสามารถใช้ฟังก์ชัน Player:Kick() เพื่อลบ Player นั้นออกจากเกมเป็นสิ่งสำคัญที่ต้องจำไว้ว่าแม้ว่าการปฏิบัตินี้จะมีประสิทธิภาพบางครั้ง มาตรการป้องกันการใช้งานในด้านลูกค้าก็ไม่เคยเชื่อถือได้ 100%


ส่งค่ากลับ

คืนจํานวนเฟรมต่อวินาทีที่ฟิสิกส์กําลังถูกจําลองอยู่ในขณะนี้

ตัวอย่างโค้ด

Speed exploiters commonly increase their local physics FPS in order to increase their character speed. This can be detected from a LocalScript by checking if the player's physics FPS is over the maximum:

Workspace:GetRealPhysicsFPS

local Players = game:GetService("Players")
local player = Players.LocalPlayer
while task.wait(1) do
if workspace:GetRealPhysicsFPS() > 65 then
player:Kick()
end
end

GetServerTimeNow

เขียนพร้อมๆ กัน

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

นี้จะคืนเวลาที่ Unix คล้ายกับ os.time() ซึ่งสามารถใช้กับ os.date() หรือกับ DateTime.fromUnixTimestamp() ได้

เวลาที่ระบุโดยฟังก์ชันนี้จะถูกบรรเทาเพื่อให้:

  • มันเป็น monotonic; มูลค่าของมันจะไม่ลดลงเลย
  • มันเคลื่อนที่ด้วยอัตราเดียวกับนาฬิกาท้องถิ่นภายใน 0.6%

GetServerTimeNow() มีราคาแพงในการโทรเมื่อเทียบกับ DateTime.now() และมีความแม่นยําน้อยกว่า os.clock() ดังนั้นจึงควรใช้เพื่อให้แน่ใจว่าอีเวนต์เริ่มต้นในเวลาจริงหรือเพื่อปรับสิ่งต่างๆเป็นระยะเวลาเป็นประจำเพื่อให้แน่ใจว่าชุดของอีเวนต์จะสอดคล้องกัน

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

ดูเพิ่ม:


ส่งค่ากลับ

เวลาที่ประมาณการของ Unix บนเซิร์ฟเวอร์

JoinToOutsiders

()

ฟังก์ชันนี้สร้างข้อต่อระหว่างส่วนที่ระบุ Parts และส่วนใดก็ได้ที่สัมผัสขึ้นอยู่กับพื้นผิวของชิ้นส่วนและโหมดการสร้างข้อต่อที่ระบุ

ฟังก์ชันนี้สร้างข้อต่อระหว่างชิ้นส่วนที่ระบุและพื้นผิวที่สัมผัสได้ใดๆ ขึ้นอยู่กับพื้นผิวของชิ้นส่วนและโหมดการสร้างข้อต่อที่ระบุ

  • กาว, สตัด, ทางเข้า, ทั่วไป, เชื่อมต่อ, และพื้นผิวเรียบทั้งหมดจะสร้างตัวอย่างการเชื่อมต่อ
  • ทรงกลมจะไม่หลอมพื้นผิวกับอะไร ด้านโค้งของทรงกระบอกจะไม่หลอมพื้นผิว แต่ด้านข้างแบนจะทำได้
  • พื้นบานพับและมอเตอร์จะยังคงสร้างตัวอย่างร่วม Rotate และ RotateP ไม่ว่ารูปร่างชิ้นส่วนจะเป็นอย่างไร

พารามิเตอร์แรกคือคอลเลกชันของ BasePartsข้อต่อจะถูกสร้างขึ้นเฉพาะระหว่างส่วนในอาร์เรย์และไม่ใช่ในอาร์เรย์เท่านั้นจะไม่สร้างข้อต่อระหว่างส่วนในคลัสเตอร์

พารามิเตอร์ที่สองคือ Enum.JointCreationMode ที่กำหนดวิธีการสร้างข้อต่อส่งมูลค่า enum ใด ๆ ไม่ว่าจะเป็น Enum.JointCreationMode.All หรือ Enum.JointCreationMode.Surface มีพฤติกรรมเดียวกันซึ่งเท่ากับเข้าร่วมเสมอ

ฟังก์ชันนี้ใช้โดยเครื่องมือย้าย Roblox Studio เมื่อผู้ใช้เสร็จสิ้นการย้ายส่วนหนึ่งร่วมกับ Plugin:GetJoinMode() และ Workspace:UnjoinFromOutsiders() สามารถใช้เพื่อรักษาฟังก์ชันการเชื่อมต่อเมื่อพัฒนาเครื่องมือสร้างสตูดิโอที่กำหนดเองดูส่วนตัวอย่างด้านล่างสำหรับตัวอย่าง


local Workspace = game:GetService("Workspace")
-- เสร็จสิ้นการย้ายการเลือก; ทำให้ข้อต่อ
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end

local Workspace = game:GetService("Workspace")
-- เริ่มย้ายการเลือก; ทำลายข้อต่อ
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end

พารามิเตอร์

objects: Instances

ชุดของ BaseParts สำหรับผู้ที่จะทำข้อต่อ

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

The Enum.JointCreationMode ที่จะใช้ การส่งผ่านใน Enum.JointCreationMode.All หรือ Enum.JointCreationMode.Surface มีพฤติกรรมเดียวกันซึ่งเทียบเท่ากับเข้าร่วมเสมอ

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

ส่งค่ากลับ

()

PGSIsEnabled

ส่งคืน true หากเกมมีตัวแก้ไขฟิสิกส์ PGS เปิดใช้งาน

เนื่องจาก Workspace.PGSPhysicsSolverEnabled ไม่สามารถเข้าถึงได้โดยสคริปต์ ฟังก์ชัน PGSIsEnabled ช่วยให้นักพัฒนาสามารถบอกได้ว่าเกมกำลังใช้โซลูชันฟิสิกส์อันไหน


ส่งค่ากลับ

ถูกหากตัวแก้ PGS ถูกเปิดใช้งาน

UnjoinFromOutsiders

()

ทำลายข้อต่อทั้งหมดระหว่าง BaseParts และอื่น ๆ BaseParts ที่ระบุ

ฟังก์ชันนี้ต้องใช้คอลเลกชันของ BaseParts .โปรดทราบว่าจุดเชื่อมต่อจะไม่ถูกทำลายระหว่างเหล่านี้ BaseParts (ซึ่งกันและกัน) เฉพาะระหว่างเหล่านี้ BaseParts และอื่น ๆ BaseParts ไม่ได้อยู่ในอาร์เรย์

ฟังก์ชันนี้ใช้โดยเครื่องมือย้าย Roblox Studio เมื่อผู้ใช้เริ่มย้ายการเลือกร่วมกับ Plugin:GetJoinMode() และ Workspace:JoinToOutsiders() สามารถใช้เพื่อรักษาฟังก์ชันการเชื่อมต่อเมื่อพัฒนาเครื่องมือสร้างสตูดิโอที่กำหนดเองดูส่วนตัวอย่างด้านล่างสำหรับตัวอย่าง


local Workspace = game:GetService("Workspace")
-- Finished moving a selection; make joints
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end

local Workspace = game:GetService("Workspace")
-- Started moving a selection; break joints
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end

พารามิเตอร์

objects: Instances

ชุดของ BaseParts สำหรับผู้ที่จะทำลายข้อต่อ

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

ส่งค่ากลับ

()

ZoomToExtents

()
การรักษาความปลอดภัยของปลั๊กอิน

ตำแหน่งและซูม Workspace.CurrentCamera เพื่อแสดงขนาดของ BaseParts ในปัจจุบันใน Workspace

ฟังก์ชันนี้ถูกใช้ในปุ่ม 'ซูมไปยังขอบเขต' ที่ถูกลบออกใน Roblox Studio คุณสมบัติ'Zoom To' (F shortcut) แต่แสดงขอบเขตของ Workspace แทนที่จะเป็นวัตถุที่เลือกในปัจจุบัน

ฟังก์ชันนี้ไม่สามารถใช้ในสคริปต์ได้ แต่จะทำงานในแถบคําสั่งหรือปลั๊กอิน


ส่งค่ากลับ

()

อีเวนต์

PersistentLoaded

อีเวนต์นี้จะเกิดขึ้นทุกครั้งที่ผู้เล่นถูกส่งโมเดลถาวรทั้งหมดและโมเดลอะตอมแบบไม่มีส่วนพารามิเตอร์ player ระบุว่าผู้เล่นรายใดได้รับตัวอย่างทั้งหมดที่เกี่ยวข้อง

โปรดทราบว่าการโหลดประสบการณ์เกิดขึ้นก่อนการโหลดถาวรและการยิงของอีเวนต์ DataModel.Loaded ไม่บ่งบอกว่ามีโมเดลถาวรทั้งหมดอยู่

พารามิเตอร์

player: Player