Terrain

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

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

ไม่สามารถสร้าง

การเลี้ยนที่นี่ช่วยให้คุณสร้างสภาพแวดล้อมที่เปลี่ยนแปลงได้อย่างไม่มีปัญหา มันขณะนี้อิงจากกริด 4×4×4 ของเซลล์ซึ่งแต่ละเซลล์มีหมายเลขระหว่าง 0 แล

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

สรุป

คุณสมบัติ

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

    เปิดหรือปิดการตกแต่งภาพประกาย

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

    ระบุความยาวของหญ้าที่เคลื่อนไหว

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

    MaterialColors เป็นตัวแทนของเว็บไซต์สำหรับคุณสมบัติสีวัสดุ, และ ไม่สามารถแก้ไขโดยสคริปต์ได้ เพื่อรับสีของวัสดุให้ใช้: Terrain:GetMaterialColor() เพื่อตั้งสีของวัสดุให้ใช้: Terrain:SetMaterialColor()

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

    แสดงขอบเขตของภูมิภาคที่ใหญ่ที่สุดที่สามารถแก้ไขได้

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

    สีของน้ําภาค

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

    ควบคุมความโปร่งใสของการสะท้อนน้ำของพื้นที่

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

    ความโปร่งใสของน้ำภาคพื้นดิน

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

    ตั้งค่าความสูงสูงสุดของคลื่นน้ำในพื้นที่ในเมตร

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

    ตั้งค่าจำนวนครั้งที่น้ำของพื้นที่จะเคลื่อนไหวขึ้นและลงในแต่ละนาที

คุณสมบัติรับทอดมาจากBasePart
  • อ่านพร้อมๆ กัน

    กำหนดว่าชิ้นส่วนนั้นเป็นของเหนียวตามธรรมชาติหรือไม่

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

    ความเร็วมุมของการประกอบของชิ้นส่วน

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

    ศูนย์กลางของพลังงานในการประกอบของชิ้นส่วนในอวกาศ

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

    ความเร็วที่เฉียบขาดของการประกอบของชิ้นส่วน

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

    พลังงานทั้งหมดของการประกอบของชิ้นส่วน

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

    อ้างอิงถึงส่วนรากของการประกอบ

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

    กำหนดประเภทของพื้นผิวสำหรับหน้าด้านหลังของชิ้นส่วน (+Z ทิศทาง)

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

    กำหนดประเภทของพื้นผิวสำหรับด้านล่างของชิ้นส่วน (-Y ทิศทาง)

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

    กำหนดสีของชิ้นส่วน

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

    กำหนดตำแหน่งและทิศทางของ BasePart ในโลก

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

    กำหนดว่าชิ้นส่วนอาจชนกับชิ้นส่วนอื่น

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

    กำหนดว่าจะใช้การสอบถามข้อมูลทางอาณาเขตในขั้นตอนการประมวลผลหรือไม่

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

    กำหนดว่า Touched และ TouchEnded เหตุการณ์จะเกิดขึ้นบนชิ้นส่วน

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

    กำหนดว่าจะมีเงาหรือไม่มีเงา

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

    อธิบายตำแหน่งกลางของมวลของชิ้นส่วน

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

    อธิบายชื่อกลุ่มความสามัคคีของชิ้นส่วน

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

    กำหนดสีของชิ้นส่วน

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

    ระบุลักษณะทางกายภาพปัจจุบันของชิ้นส่วน

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

    กำหนดสมบัติภาพทางกายภาพหลายอย่างของชิ้นส่วน

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

    ใช้เพื่อเปิดใช้งานหรือปิดการใช้งานแรงโน้มถ่วงบนชิ้นส่วนและการประกอบ

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

    The CFrame ของเนื้อหาทางกายภาพของ BasePart

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

    ขนาดทางกายภาพจริงของ BasePart ตามที่เครื่องจักรฟิสิกส์มองว่า

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

    กำหนดประเภทของพื้นผิวสำหรับหน้าผากของชิ้นส่วน (-Z ทิศทาง)

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

    กำหนดประเภทของพื้นผิวสำหรับหน้าซ้ายของชิ้นส่วน (-X ทิศทาง)

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

    กำหนดตัวคูณสำหรับ BasePart.Transparency ที่มองเห็นได้เฉพาะลูกค้าท้องถิ่นเท่านั้น

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

    กำหนดว่าจุดส่วนหนึ่งสามารถเลือกได้ใน Studio

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

    อธิบายปริมาณของชิ้นส่วน ผลิตภัณฑ์ของความหนาแน่นและปริมาณ

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

    กำหนดว่าส่วนหนึ่งมีส่วนร่วมกับพลังงานทั้งหมดหรือความต้องการในตัวเองของร่างกายที่แข็งแกร่ง

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

    กำหนดคุณสมบัติและคุณสมบัติทางกายภาพปกติของชิ้นส่วน

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

    ชื่อของ MaterialVariant

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

    อธิบายการหมุนของชิ้นส่วนในโลก

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

    ระบุค่าเฉลี่ยของส่วนหมุนจาก Datatype.CFrame ของมัน

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

    อธิบายตำแหน่งของชิ้นส่วนในโลก

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

    เวลาตั้งแต่อัปเดตฟิสิกส์ครั้งล่าสุด

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

    กำหนดว่าส่วนใดสะท้อนสกายบ็อกซ์ได้มาก

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

    อธิบายการเปลี่ยนแปลงขนาดเล็กสุดที่อนุญาตโดยวิธีขยาย

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

    อธิบายใบหน้าที่ส่วนหนึ่งอาจเปลี่ยนขนาด

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

    กำหนดประเภทของพื้นผิวสำหรับด้านขวาของชิ้นส่วน (+X ทิศทาง)

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

    กฎหลักในการกำหนดราก้อนของการประกอบการ

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

    การหมุนของส่วนในองศาสำหรับสามแกน

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

    กำหนดความสูงของชิ้นส่วน (ความสูง) ความกว้าง (ความกว้าง) และความสูง (ความสูง)

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

    กำหนดประเภทของพื้นผิวสำหรับหน้าด้านบนของชิ้นส่วน (+Y ทิศทาง)

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

    กำหนดว่าส่วนหนึ่งสามารถมองเห็นได้มากเท่าไหร่ (คือสิ่งที่ผิดพลาดของความโปร่งใสของส่วน)

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

วิธีการ

  • กลับตำแหน่งโลกของศูนย์เซลล์ภาคดิน (x, y, z)

  • กลับตำแหน่งของมุมซ้ายล่างของเซลล์กริด (x, y, z)

  • Clear():void

    ล้างสภาพที่อยู่บนพื้น.

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

  • กลับจำนวนเซลล์ที่ไม่เปล่าในพื้นที่

  • FillBall(center : Vector3,radius : number,material : Enum.Material):void

    กรอกลูกบอลของพื้นที่ละเอียดในพื้นที่ที่กำหนด

  • FillBlock(cframe : CFrame,size : Vector3,material : Enum.Material):void

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

  • FillCylinder(cframe : CFrame,height : number,radius : number,material : Enum.Material):void

    กรอกทรงกระบอกของพื้นที่ละเอียดในพื้นที่ที่กำหนด

  • FillRegion(region : Region3,resolution : number,material : Enum.Material):void

    กรอกพื้นที่ Region3 ด้วยเนื้อหาเรียบ.

  • FillWedge(cframe : CFrame,size : Vector3,material : Enum.Material):void

    กรอกรูปร่างทรงกระบอกของพื้นที่ด้วย Enum.Material และ CFrame และขนาดของพื้นที่

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

    กลับสีของวัสดุเฉพาะสำหรับพื้นที่

  • PasteRegion(region : TerrainRegion,corner : Vector3int16,pasteEmptyCells : bool):void

    ใช้ส่วนหนึ่งของพื้นที่ในวัตถุพื้นที่ หมายเหตุ: ข้อมูล TerrainRegion ไม่ได้รีพลีตระหว่างเซิร์ฟเวอร์และคลายเคลมได้

  • ReadVoxelChannels(region : Region3,resolution : number,channelIds : Array):Dictionary
    เขียนพร้อมๆ กัน

    กลับรูปแบบข้อมูล voxel ภาคภูมิในตารางโดยใช้ชื่อช่อง

  • ReadVoxels(region : Region3,resolution : number):Tuple
    เขียนพร้อมๆ กัน

    กลับรูปแบบภาพถนนที่เรียบในตาราง

  • ReplaceMaterial(region : Region3,resolution : number,sourceMaterial : Enum.Material,targetMaterial : Enum.Material):void

    แทนที่พื้นดินของวัสดุในภาภาพภายในภูมิภาคด้วยวัสดุอื่น

  • SetMaterialColor(material : Enum.Material,value : Color3):void

    ตั้งค่าสีของวัสดุภาพประกายเกียวสำหรับวัสดุภาพประกายเกียวที่กำหนด

  • กลับตำแหน่งเซลล์กริดที่มีตำแหน่ง ตําแหน่ง

  • กลับตำแหน่งเซลล์กริดที่มีตำแหน่งจุด โดยเลือกเซลล์กริดที่ว่างเมื่อตำแหน่งอยู่บนขอบเซลล์กริด

  • กลับตำแหน่งเซลล์กริดที่มีตำแหน่งจุด โดยเฉพาะเซลล์กริดที่ไม่มีเนื้อหาเมื่อตำแหน่งอยู่บนขอบเซลล์กริด

  • WriteVoxelChannels(region : Region3,resolution : number,channels : Dictionary):void

    ตั้งภาคภูมิใช้พจนานุกรมของข้อมูลช่องว่ายน้ำเพื่อกำหนดภาคภูมิ

  • WriteVoxels(region : Region3,resolution : number,materials : Array,occupancy : Array):void

    ตั้งค่าภาคส่วนหนึ่งของพื้นที่ละเอียดโดยใช้รูปแบบตาราง

วิธีการรับทอดมาจากBasePart
  • AngularAccelerationToTorque(angAcceleration : Vector3,angVelocity : Vector3):Vector3
  • ใช้แรงผลักแบบมุมเพื่อประกอบ

  • ApplyImpulse(impulse : Vector3):void

    ใช้แรงผลักในการประยุกต์ใช้งานต่อวงจรที่ center of mass

  • ApplyImpulseAtPosition(impulse : Vector3,position : Vector3):void

    ใช้แรงผลักไปยังการประกอบในตำแหน่งที่กำหนด

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

    กลับว่าชิ้นส่วนสามารถชนกันได้หรือไม่

  • ตรวจสอบว่าคุณสามารถตั้งค่าเครือข่ายของบางส่วนได้หรือไม่

  • GetConnectedParts(recursive : bool):Instances
    เขียนพร้อมๆ กัน

    กลับตารางของชิ้นส่วนที่เชื่อมต่อกับวัตถุโดยประเภทของข้อต่อที่แข็งแกร่ง

  • GetJoints():Instances
    เขียนพร้อมๆ กัน

    กลับส่วนของร่วมหรือข้อจํากัดที่เชื่อมต่อกับส่วนนี้

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

    กลับค่าของสมบัติสินค้า Mass

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

    กลับผู้เล่นปัจจุบันที่เป็นเจ้าของเครือข่ายของส่วนนี้ หรือ zero ในกรณีของเซิร์ฟเวอร์

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

    กลับ true หากเครื่องยนต์เกมตัดสินผู้สมัครเครือข่ายสำหรับส่วนนี้โดยอัตโนมัติ

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

    กลับส่วนปูมของการรวบรวมของชิ้นส่วน

  • GetTouchingParts():Instances

    กลับตารางของ all BasePart.CanCollide ชิ้นส่วนที่เป็นส่วนหนึ่งกับส่วนนี้

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

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

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

    กลับ true หากวัตถุเชื่อมต่อกับส่วนที่จะรองรับมันในที่ (เช่น Anchored ส่วน) ยกเว้นกลับ false หากเป็นกรณีอื่น

  • Resize(normalId : Enum.NormalId,deltaAmount : number):bool

    เปลี่ยนขนาดของวัตถุเหมือนการใช้เครื่องมือขยายขนาดใน Studio

  • SetNetworkOwner(playerInstance : Player):void

    ตั้งผู้เล่นที่ให้เป็นเจ้าของเครือข่ายสำหรับส่วนนี้และส่วนที่เชื่อมต่ออื่น ๆ

  • ให้เครื่องมือเกมตัดสินใจได้อย่างไดนามิกว่าใครจะดูแลฟิสิกส์ของชิ้นส่วน (หนึ่งในลูกค้าหรือเซิร์ฟเวอร์)

  • IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
    ผลตอบแทน

    สร้าง IntersectOperation ใหม่จากเหลี่ยมของผลิตภัณฑ์และอื่น ๆ ในค่าย่อที่ให้

  • SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
    ผลตอบแทน

    สร้าง UnionOperation ใหม่จากส่วน โดยลบภูมิที่เป็นรูปสี่เหลี่ยมจากส่วนที่อยู่ในแผนที่ที่ให้

  • UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
    ผลตอบแทน

    สร้าง UnionOperation ใหม่จากส่วน รวมถึงภาพที่เป็นรูปร่างที่ครอบครองพื้นที่ส่วนในแผงที่ให้

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

    รับ pivot ของ Class.PVInstance

  • PivotTo(targetCFrame : CFrame):void

    แปลง PVInstance พร้อมกับบรรพบุรุษทั้งหมดของมัน PVInstances เพื่อให้ pivot ตอนนี้อยู่ที่ CFrame ที่กำหนด

อีเวนต์

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

  • เกิดขึ้นเมื่อชิ้นส่วนสัมผัสกับอีกชิ้นส่วนในผลมาจากการเคลื่อนที่ทางกายภาพ

คุณสมบัติ

Decoration

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

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

GrassLength

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

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

MaterialColors

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

MaterialColors เป็นตัวแทนของเว็บไซต์สำหรับคุณสมบัติสีวัสดุ, และ ไม่สามารถแก้ไขโดยสคริปต์ได้ เพื่อรับสีของวัสดุให้ใช้: Terrain:GetMaterialColor()

เพื่อตั้งสีวัสดุให้ใช้: Terrain:SetMaterialColor()

MaxExtents

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

แสดงขอบเขตของภูมิภาคที่ใหญ่ที่สุดที่สามารถแก้ไขได้

WaterColor

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

สีของน้ําภาค

WaterReflectance

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

ควบคุมความโปร่งใสของการสะท้อนน้ำของพื้นที่

WaterTransparency

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

ความโปร่งใสของน้ำภาคพื้นดิน

WaterWaveSize

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

ตั้งค่าความสูงสูงสุดของคลื่นน้ำในพื้นที่ให้ในสตั๊ด นี่ได้รับการจำกัดให้อยู่ระหว่าง 0 และ 1 ในขณะนี้

WaterWaveSpeed

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

ตั้งค่าจำนวนครั้งที่น้ำขึ้นและลงในแต่ละนาที นี้จำกัดอยู่ในขณะนี้ระหว่าง 0 และ 100

วิธีการ

CellCenterToWorld

กลับตำแหน่งโลกของศูนย์เซลล์ภาคดิน (x, y, z)

พารามิเตอร์


ส่งค่ากลับ

CellCornerToWorld

กลับตำแหน่งของมุมซ้ายล่างของเซลล์กริด (x, y, z)

พารามิเตอร์


ส่งค่ากลับ

Clear

void

ล้างสภาพที่อยู่บนพื้น.


ส่งค่ากลับ

void

CopyRegion

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

พารามิเตอร์

region: Region3int16

ส่งค่ากลับ

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

Terrain:CopyRegion

local terrainRegion = workspace.Terrain:CopyRegion(workspace.Terrain.MaxExtents)
workspace.Terrain:Clear()
task.wait(5)
workspace.Terrain:PasteRegion(terrainRegion, workspace.Terrain.MaxExtents.Min, true)

CountCells

กลับจำนวนเซลล์ที่ไม่เปล่าในพื้นที่


ส่งค่ากลับ

FillBall

void

กรอกลูกบอลของพื้นที่ละเอียดในพื้นที่ที่กำหนด

พารามิเตอร์

center: Vector3

ตําแหน่งของศูนย์กลางของลูกบอล

radius: number

รัศมีใน studs ของลูกบอลภาพปริศนา

material: Enum.Material

The Enum.Material ของลูกบอลภาคพื้นดิน


ส่งค่ากลับ

void

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

Filling a Ball of Terrain

local Workspace = game:GetService("Workspace")
-- Creates a ball of grass at (0,0,-10) with a radius of 10 studs
Workspace.Terrain:FillBall(Vector3.new(0, 0, -10), 10, Enum.Material.Grass)

FillBlock

void

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

พารามิเตอร์

cframe: CFrame

การจัดตำแหน่งและการจัดตำแหน่งของบล็อกเทียม

size: Vector3

ขนาดใน studs ของบล็อกตรง - ความสูงและความกว้าง

material: Enum.Material

บล็อกพื้นดิน Enum.Material


ส่งค่ากลับ

void

FillCylinder

void

กรอกทรงกระบอกของพื้นที่ละเอียดในพื้นที่ที่กำหนด พื้นที่ถูกกำหนดโดย CFrame ความสูง และรัศมี

การใช้


workspace.Terrain:FillCylinder(CFrame.new(0, 50, 0), 5, 30, Enum.Material.Asphalt)

พารามิเตอร์

cframe: CFrame

CFrame (ตําแหน่งและการจัดเรียง) ของทรงกระบอกดิน

height: number

ความสูงใน studs ของทรงกระบอกดิน

radius: number

รัศมีใน studs ของทรงกระบอกดิน

material: Enum.Material

The Enum.Material ของทรงกระบอกพื้นดิน


ส่งค่ากลับ

void

FillRegion

void

กรอกพื้นที่ Region3 ด้วยเนื้อหาเรียบ.

พารามิเตอร์

region: Region3
resolution: number
material: Enum.Material

ส่งค่ากลับ

void

FillWedge

void

FillWedge() กรอกรูปร่างเป็นทรงกระบอกของ Terrain ด้วย Enum.Material ที่ให้และพื้นที่ 0> Datatype.CFrame0> และขนาด การจัดเรียงของกระบอ

พารามิเตอร์

cframe: CFrame

ตำแหน่งและการจัดตำแหน่งของเหลี่ยมผืนที่จะเติม

size: Vector3

ขนาดของที่พรรคเพื่อการกรอก

material: Enum.Material

วัสดุที่ใช้ในการเติมเข็ม


ส่งค่ากลับ

void

GetMaterialColor

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

กลับสีของวัสดุเฉพาะสำหรับพื้นที่

พารามิเตอร์

material: Enum.Material

ส่งค่ากลับ

PasteRegion

void

ใช้ส่วนหนึ่งของพื้นที่ในวัตถุพื้นที่ หมายเหตุ: ข้อมูล TerrainRegion ไม่ได้รีพลีตระหว่างเซิร์ฟเวอร์และคลายเคลมได้

พารามิเตอร์

corner: Vector3int16
pasteEmptyCells: bool

ส่งค่ากลับ

void

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

Create, Copy and Paste Terrain

--[[
Note: The use of int16 variants for these API is the result of legacy code.
The underlying voxel grid system uses Vector3int32 (Vector3).
]]
local Workspace = game:GetService("Workspace")
local Terrain = Workspace.Terrain
-- Create a simple terrain region (a 10x10x10 block of grass)
local initialRegion = Region3.new(Vector3.zero, Vector3.one * 10)
Terrain:FillRegion(initialRegion, 4, Enum.Material.Grass)
-- Copy the region using Terrain:CopyRegion
local copyRegion = Region3int16.new(Vector3int16.new(0, 0, 0), Vector3int16.new(10, 10, 10))
local copiedRegion = Terrain:CopyRegion(copyRegion)
-- Define where to paste the region (in this example, offsetting by 5 studs on the X-axis)
local newRegionCorner = Vector3int16.new(5, 0, 0)
-- Paste the region using Terrain:PasteRegion
Terrain:PasteRegion(copiedRegion, newRegionCorner, true)

ReadVoxelChannels

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

กลับรูปแบบข้อมูล voxel ภาคภูมิในตารางโดยใช้ชื่อช่อง

พารามิเตอร์

region: Region3

ภาคเป้าหมายที่อ่านจากภาคเป้าหมาย ต้องอยู่ในเครือข่าย voxel เท่านั้น จะมีข้อผิดพลาดถ้าภาคเป็นส่วนใหญ่มากเกินไป ขีดจำกัดปัจจุบันคือ 4194304 วัฒซ์

resolution: number

ความละเอียดของโวกเซล ต้องเป็น 4

channelIds: Array

รายการรหัสช่องที่ต้องการเข้าถึงจากข้อมูล voxel (สตริง) ที่ต้องการเข้าถึง รหัสช่องแต่ละรายการจะรวมถึงประเภทของข้อมูลที่เก็บไว้ใน voxel ปัจจุบันรหัสสนับสนุนที่สนับสนุน


ส่งค่ากลับ

กลับข้อมูล voxel เป็นพจนานุกรมตามการป้อนข้อมูล channelIds ในขณะนี้ กุญแจแสดงแต่ละรหัสช่องด้วยค่าของตัวแทน 3D เป็นรายการ

  • SolidMaterial — วัสดุ Enum.Material ของ voxel โปรดทราบว่า Water ไม่สนับสนุนอีกต่อไป; แทนที่นั้น วัสดุที่มีน้ําจะมีมูลค่า 0> LiquidOccupancy0>
  • SolidOccupancy — ความเป็นเจ้าของวัตถุของวัสดุในช่อง SolidMaterial นี้คือค่าระหว่าง 0 (ว่างเปล่า) และ 1 (เต็ม)
  • LiquidOccupancy — ระบุความเป็นเจ้าของวัสดุ Water ใน voxel ในระหว่าง 0 (ไม่มีน้ํา) และ 1 (เต็ม voxel) หาก

พจนารูปและคีย์ Size อื่น ๆ ที่มีค่าแทนขนาดรายการช่องของแต่ละข้อมูลช่อง

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

Terrain:ReadVoxelChannels()

local REGION_START = Vector3.new(-20, -20, -20)
local REGION_END = Vector3.new(20, 20, 20)
local function printRegion(terrain, region)
local channelOutput = terrain:ReadVoxelChannels(region, 4, {"SolidOccupancy", "SolidMaterial", "LiquidOccupancy"})
local size = channelOutput.Size
for x = 1, size.X do
for y = 1, size.Y do
for z = 1, size.Z do
print(("(%2i, %2i, %2i): %.2f %s %.2f"):format(x, y, z, channelOutput.SolidOccupancy[x][y][z], channelOutput.SolidMaterial[x][y][z].Name, channelOutput.LiquidOccupancy[x][y][z]))
end
end
end
end
local region = Region3.new(REGION_START, REGION_END)
printRegion(workspace.Terrain, region)

ReadVoxels

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

กลับรูปแบบภาพถนนที่เรียบในตาราง

พารามิเตอร์

region: Region3

ภาพเขตเป้าหมายที่อ่านจากภาพเขตเป้าหมาย ต้องอยู่ในเครือข่าย voxel เท่านั้น จะโยนข้อผิดพลาดหากภาพเขตเป้าหมายใหญ่เกินไป ขีดจำกัดปัจจุบันคือ 4194304 โวกเซล^3

resolution: number

ความละเอียดของโวกเซล ต้องเป็น 4


ส่งค่ากลับ

กลับข้อมูลโวกซ์เทลดิ้งสดในรูปแบบสองแถว 3D

  • materials - รายการ 3D ของ Enum.Material จากพื้นที่เป้าหมาย นอกจากนี้ยังมีสาขา Field ซึ่งเท่ากับขนาดของรายการที่เรียงซ้อน
  • occupancies - 3D รายการอาคารจากพื้นที่เป้าหมาย นอกจากนี้ยังมีสาขาขนาดเท่าขนาดของรายการอาคารที่เรียงซ้อน

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

Terrain:ReadVoxels() Code Example

local REGION_START = Vector3.new(-20, -20, -20)
local REGION_END = Vector3.new(20, 20, 20)
local function printRegion(terrain, region)
local materials, occupancies = terrain:ReadVoxels(region, 4)
local size = materials.Size -- Same as occupancies.Size
for x = 1, size.X, 1 do
for y = 1, size.Y, 1 do
for z = 1, size.Z, 1 do
print(("(%2i, %2i, %2i): %.2f %s"):format(x, y, z, occupancies[x][y][z], materials[x][y][z].Name))
end
end
end
end
local region = Region3.new(REGION_START, REGION_END)
printRegion(workspace.Terrain, region)

ReplaceMaterial

void

ReplaceMaterial แทนที่พื้นดินของ Class.Terrain ภายใน Datatype.Region3 ด้วยวัสดุอื่น ในความเป็นจริง มันเป็นการหาและแทนที่การดำเนินงานบนวัสดุ Region3 เหล่านี้

ข้อจํากัด

เมื่อเรียกวิธีนี้ต้องมี resolution พารามิเตอร์ที่ถูกต้องคือ 4 นอกจากนี้ ภาคภูมิใต้ ต้องอยู่ในเค้าโครงของวัสดุภูมิใต้ คือ ส่วนประกอบของจุดสูง

พารามิเตอร์

region: Region3

เกิดขึ้น

resolution: number

ความละเอียดที่เครื่องสำอางจะดำเนินการแทนที่ในขณะนี้ต้องเป็นตัวเลขที่แน่นอน 4

sourceMaterial: Enum.Material

วัสดุเก่าที่จะถูกแทนที่

targetMaterial: Enum.Material

วัสดุใหม่


ส่งค่ากลับ

void

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

Terrain:ReplaceMaterial

local Workspace = game:GetService("Workspace")
local terrain = Workspace.Terrain
local region = Region3.new(Vector3.new(-20, -20, -20), Vector3.new(20, 20, 20))
local resolution = 4
local materialToReplace = Enum.Material.Grass
local replacementMaterial = Enum.Material.Asphalt
terrain:ReplaceMaterial(region, resolution, materialToReplace, replacementMaterial)

SetMaterialColor

void

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

พารามิเตอร์

material: Enum.Material
value: Color3

ส่งค่ากลับ

void

WorldToCell

กลับตำแหน่งเซลล์กริดที่มีตำแหน่ง ตําแหน่ง

พารามิเตอร์

position: Vector3

ส่งค่ากลับ

WorldToCellPreferEmpty

กลับตำแหน่งเซลล์กริดที่มีตำแหน่งจุด โดยเลือกเซลล์กริดที่ว่างเมื่อตำแหน่งอยู่บนขอบเซลล์กริด

พารามิเตอร์

position: Vector3

ส่งค่ากลับ

WorldToCellPreferSolid

กลับตำแหน่งเซลล์กริดที่มีตำแหน่งจุด โดยเฉพาะเซลล์กริดที่ไม่มีเนื้อหาเมื่อตำแหน่งอยู่บนขอบเซลล์กริด

พารามิเตอร์

position: Vector3

ส่งค่ากลับ

WriteVoxelChannels

void

ตั้งภาคภูมิใช้พจนานุกรมของข้อมูลช่องว่ายน้ำเพื่อกำหนดภาคภูมิ

พารามิเตอร์

region: Region3

ภาพเขตเป้าหมายที่จะเขียน. ต้องอยู่ในเครือข่าย voxel เท่านั้น จะโยนข้อผิดพลาดหากภาพเป็นสีมากเกินไป; ขีดจำกัดปัจจุบันคือ 4194304 วัฒล์.

resolution: number

ความละเอียดของโวกเซล ต้องเป็น 4

channels: Dictionary

พจนานุกรมข้อมูล voxel คล้ายกับค่ากลับของ ReadVoxelChannels() กุญแจแสดงตัวตนของแต่ละช่องที่มีค่าของพวกเขาเป็นรายการของข้อมูล 3D เป็นรายการ ไดรับนี้สามารถสนั

  • SolidMaterial — วัสดุ Enum.Material ของ voxel หมายเหตุว่า Water ไม่สนับสนุนอีกต่อไป; แทนที่, วัสดุที่มีน
  • SolidOccupancy — ความเป็นเจ้าของวัตถุของวัสดุในช่อง SolidMaterial นี้ควรเป็นค่าระหว่าง 0 (ว่างเปล่า) และ 1 (เต็ม)
  • LiquidOccupancy — ระบุความเป็นเจ้าของวัสดุ Water ใน voxel ในระหว่าง 0 (ไม่มีน้ํา) และ 1 (เต็ม voxel) หาก

ส่งค่ากลับ

void

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

Terrain:WriteVoxelChannels()

local region = Region3.new(Vector3.new(0, 0, 0), Vector3.new(64, 32, 64))
local RESOLUTION = 4
local OCC_EPSILON = 1/256
local function generateRandomTerrainInRegion(regionInput)
local region = regionInput:ExpandToGrid(4)
local size = region.Size / 4
local solidMaterials = {}
local solidOccupancies = {}
local waterOcc = {}
for x = 1, size.X do
table.insert(solidMaterials, {})
table.insert(solidOccupancies, {})
table.insert(waterOcc, {})
for y = 1, size.Y do
table.insert(solidMaterials[x], {})
table.insert(solidOccupancies[x], {})
table.insert(waterOcc[x], {})
for z = 1, size.Z do
local mat = if math.random() < 0.5 then Enum.Material.Air else Enum.Material.Sand
local occ = 0
local water = math.random()
if mat == Enum.Material.Sand then
occ = math.random() / 2 + 0.5
if occ > 1 - OCC_EPSILON then
water = 0 -- Solids cannot contain water
end
else
occ = 0
end
table.insert(solidMaterials[x][y], mat)
table.insert(solidOccupancies[x][y], occ)
table.insert(waterOcc[x][y], water)
end
end
end
return {SolidMaterial = solidMaterials, SolidOccupancy = solidOccupancies, LiquidOccupancy = waterOcc}
end
local regionContent = generateRandomTerrainInRegion(region)
workspace.Terrain:WriteVoxelChannels(region, 4, regionContent)

WriteVoxels

void

ตั้งค่าภาคส่วนหนึ่งของพื้นที่ละเอียดโดยใช้รูปแบบตาราง

พารามิเตอร์

region: Region3

ภาพเขตเป้าหมายที่จะเขียน. ต้องอยู่ในเครือข่าย voxel เท่านั้น จะโยนข้อผิดพลาดหากภาพเขตเป็นสีมากเกินไป

resolution: number

ความละเอียดของโวกเซล ต้องเป็น 4

materials: Array

3D รายการของ Menu.Material มิติต้องตรงกับขนาดของภาคเป้าหมายใน voxels

occupancy: Array

3D รายการอาคาร (จํานวนระหว่าง 0 และ 1) มิติต้องตรงกับขนาดของภาพเป้าหมายใน voxels เท่านั้น


ส่งค่ากลับ

void

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

Example

local Workspace = game:GetService("Workspace")
local terrain = Workspace.Terrain
local resolution = 4
local region = Region3.new(Vector3.new(0, 0, 0), Vector3.new(16, 28, 20)):ExpandToGrid(resolution)
local materials = {
{
{
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air },
},
{
{
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Air },
},
{
{
Enum.Material.CrackedLava,
Enum.Material.Sand,
Enum.Material.Sand,
Enum.Material.Sand,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Air },
},
{
{
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air },
},
}
local occupancies = {
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 0.5, 0.5, 0.5, 0.5 },
{ 0, 0, 0, 0, 0 },
},
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 1, 1, 1, 0.5 },
{ 0, 1, 1, 1, 0 },
},
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 1, 1, 1, 0.5 },
{ 0, 1, 1, 1, 0 },
},
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 0.5, 0.5, 0.5, 0.5 },
{ 0, 0, 0, 0, 0 },
},
}
terrain:WriteVoxels(region, resolution, materials, occupancies)
Maximum Region Size

local REGION_START = Vector3.new(-20, -20, -20)
local REGION_END = Vector3.new(20, 20, 20)
local CFRAME = CFrame.new(0, 20, 0)
local SIZE = 50
local function getRegionVolumeVoxels(region)
local resolution = 4
local size = region.Size
return (size.x / resolution) * (size.y / resolution) * (size.z / resolution)
end
local function isRegionTooLargeForReadWriteVoxels(region)
return getRegionVolumeVoxels(region) > 4194304
end
local function isRegionTooLarge(region)
return getRegionVolumeVoxels(region) > 67108864
end
-- Helper function to get an axis-aligned Region3 from the given cframe and size
local function getAABBRegion(cframe, size)
local inv = cframe:Inverse()
local x = size * inv.RightVector
local y = size * inv.UpVector
local z = size * inv.LookVector
local w = math.abs(x.X) + math.abs(x.Y) + math.abs(x.Z)
local h = math.abs(y.X) + math.abs(y.Y) + math.abs(y.Z)
local d = math.abs(z.X) + math.abs(z.Y) + math.abs(z.Z)
local pos = cframe.Position
local halfSize = Vector3.new(w, h, d) / 2
return Region3.new(pos - halfSize, pos + halfSize):ExpandToGrid(4)
end
-- Specific functions for checking individual methods
local function isRegionTooLargeForFillBall(cframe, radius)
local diameter = radius * 2
return isRegionTooLarge(getAABBRegion(cframe, Vector3.new(diameter, diameter, diameter)))
end
local function isRegionTooLargeForFillBlock(cframe, size)
return isRegionTooLarge(getAABBRegion(cframe, size))
end
local function isRegionTooLargeForFillCylinder(cframe, height, radius)
local diameter = radius * 2
return isRegionTooLarge(getAABBRegion(cframe, Vector3.new(diameter, height, diameter)))
end
local function isRegionTooLargeForFillRegion(region)
return isRegionTooLarge(region)
end
local function isRegionTooLargeForFillWedge(cframe, size)
return isRegionTooLarge(getAABBRegion(cframe, size))
end
local function isRegionTooLargeForReplaceMaterial(region)
return isRegionTooLarge(region)
end
local region = Region3.new(REGION_START, REGION_END)
print(isRegionTooLargeForReadWriteVoxels(region))
print(isRegionTooLargeForFillBall(CFRAME, SIZE))
print(isRegionTooLargeForFillBlock(CFRAME, SIZE))
print(isRegionTooLargeForFillCylinder(CFRAME, SIZE, SIZE))
print(isRegionTooLargeForFillRegion(region))
print(isRegionTooLargeForFillWedge(CFRAME, SIZE))
print(isRegionTooLargeForReplaceMaterial(region))

อีเวนต์