DataModelMesh

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

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

ไม่สามารถสร้าง
ไม่สามารถเรียกดู

DataModelMesh เป็นคลาสที่เป็นนามธรรมจากซึ่งคลาสเมชจะลงมา

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

โปรดทราบว่าคลาส MeshPart และ CharacterMesh ไม่ได้ลงจาก DataModelMesh

สรุป

คุณสมบัติ

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

    ค่าส่วนลบของเมชจะกำหนดตำแหน่งที่สัมพันธ์จาก BasePart.Position ของเมชที่จะแสดงที่ BasePart ซึ่งเมชจะแสดงที่

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

    ขนาดของเมชจะกำหนดขนาดของเมชเมื่อเทียบกับขนาดเดิมของมัน

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

    เปลี่ยนสีของเทกเจอร์ของเมชที่ใช้กับ FileMesh.TextureId

คุณสมบัติ

Offset

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

ออฟเซ็ตของเมชจะกำหนดระยะห่างจาก BasePart.Position ของเมชที่จะแสดง BasePart ที่เมชจะแสดง

วิธีใช้การเลื่อนเมช

คุณสมบัติ Offset เปลี่ยนตำแหน่งที่เครือข่ายจะแสดงในเชิงเปรียบเทียบตัวอย่างเช่น การเลื่อน 0, 5, 0 จะทำให้เมชถูกแสดง 5 สตัดข้างตำแหน่งของ BasePart

ตำแหน่งของ BasePart ยังคงไม่เปลี่ยนแปลง ซึ่งหมายความว่ากล่องการชนกันทางกายภาพของชิ้นส่วนจะยังคงอยู่ในตำแหน่งเดียวกันสิ่งนี้แสดงในภาพด้านล่างที่เส้นสีเขียว (a SelectionBox ) แสดงถึงขอบเขตของ BasePart

การใช้งานอื่นๆ สำหรับการเลื่อนเมช

มีจำนวนมากของการใช้งานที่น่าสนใจสำหรับคุณสมบัติการเลื่อนเมช

  • ความเคลื่อนไหวและ DataModelMesh.Scale สามารถแอนิเมชั่นได้โดยใช้ TweenService ค่าใช้จ่ายค่อนข้างต่ำเนื่องจากเครื่องยนต์ไม่จำเป็นต้องทำการคำนวณทางกายภาพ/การชนกันเนื่องจาก BasePart ไม่ถูกย้าย
  • เปลี่ยนความสัมพันธ์ระหว่างเมชและขอบเขตการชนกัน (กำหนดโดย BasePart )

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

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.Scale and DataModelMesh.Offset properties of the SpecialMesh are then animated using TweenService.

Mesh Offset and Scale

local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.Parent = part
-- selection box to show part extents
local box = Instance.new("SelectionBox")
box.Adornee = part
box.Parent = part
-- parent part to workspace
part.Parent = workspace
-- animate offset and scale with a tween
local tween = TweenService:Create(
mesh,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, -1, true, 0),
{ Scale = Vector3.new(1, 1, 1), Offset = Vector3.new(0, 3, 0) }
)
tween:Play()

Scale

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

ขนาดของเมชจะกำหนดขนาดของเมชเมื่อเทียบกับขนาดเดิมของมัน

วิธีใช้เครือข่าย mesh

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

  • SpecialMesh วัตถุที่มี SpecialMesh.FileType ตั้งค่าเป็นขนาด 'FileMesh' เมื่อเทียบกับขนาดเดิมของเมชเมื่ออัปโหลดไปยัง Roblox
  • BlockMesh วัตถุหรือ SpecialMesh วัตถุที่มี SpecialMesh.FileType ตั้งค่าเป็น 'Brick', 'Wedge' หรือ 'Sphere' ในเชิงเดียวกันกับ BasePart.Size ของพ่อแม่
  • CylinderMesh วัตถุหรือ SpecialMesh วัตถุที่มี SpecialMesh.FileType ตั้งค่าเป็นระดับ 'ทรงกระบอก' เมื่อเทียบกับ BasePart.Size ของพ่อแม่อย่างเท่าเทียมกันสำหรับแกนความสูงของทรงกระบอกและรักษาอัตราส่วน 1:1 สำหรับความยาวและความกว้างของทรงกระบอกโดยใช้ค่าต่ำสุด
  • SpecialMesh วัตถุที่มี SpecialMesh.FileType ตั้งค่าเป็น 'หัว' ขณะนี้มีขนาดในแบบไม่มาตรฐานนักพัฒนาไม่ควรพึ่งพาสิ่งนี้เนื่องจากมีแผนที่จะเปลี่ยนพฤติกรรมนี้
  • SpecialMesh วัตถุที่มี SpecialMesh.FileType ตั้งค่าเป็นเครื่องชั่ง 'Torso' พิมพ์

การสาธิตเครือข่ายขนาดเล็ก

พฤติกรรมดังกล่าวสามารถเห็นได้ในภาพสาธิตต่อไปนี้

การขยายเชิงเส้นเมื่อเทียบกับขนาดชิ้นส่วนสำหรับเมช 'Brick', 'Wedge' และ 'Sphere'

การขยายเชิงเส้นเมื่อเทียบกับเมชที่อัปโหลดเดิมสำหรับเมช 'FileMesh'

การขยายขนาดที่ไม่สม่ำเสมอสำหรับเมช 'ทรงกระบอก'

การใช้งานอื่นๆ สำหรับเครื่องชั่งเมช

มีจำนวนมากของการใช้งานที่น่าสนใจสำหรับคุณสมบัติการเลื่อนเมช

  • DataModelMesh.Offset และเครื่องชั่งสามารถแอนิเมชั่นได้โดยใช้ TweenService ค่าใช้จ่ายค่อนข้างต่ำเนื่องจากเครื่องยนต์ไม่จำเป็นต้องทำการคำนวณทางกายภาพ/การชนกันเนื่องจาก BasePart ไม่ได้เปลี่ยนแปลง
  • เปลี่ยนความสัมพันธ์ระหว่างเมชและขอบเขตการชนกัน (กำหนดโดย BasePart )

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

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.Scale and DataModelMesh.Offset properties of the SpecialMesh are then animated using TweenService.

Mesh Offset and Scale

local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.Parent = part
-- selection box to show part extents
local box = Instance.new("SelectionBox")
box.Adornee = part
box.Parent = part
-- parent part to workspace
part.Parent = workspace
-- animate offset and scale with a tween
local tween = TweenService:Create(
mesh,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, -1, true, 0),
{ Scale = Vector3.new(1, 1, 1), Offset = Vector3.new(0, 3, 0) }
)
tween:Play()

VertexColor

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

VertexColor กำหนดการเปลี่ยนแปลงสีของ Texture ของ FileMeshโปรดทราบว่าคุณสมบัตินี้เป็น Vector3 มากกว่าที่จะเป็น Color3 เพื่อแปลงใช้คุณสมบัติ Color3.R , Color3.G และ Color3.B

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

วิธีการ

อีเวนต์