SpecialMesh

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

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

วัตถุ SpecialMesh ใช้เมชใน BasePart ขึ้นอยู่กับคุณสมบัติ MeshType ตัวเลือกจำนวนมากพร้อมให้ใช้งาน

  • อิฐ - รูปร่างบล็อก, เทียบเท่ากับ BlockMesh
  • ทรงกระบอก - ทรงกระบอก, เหมือน Class.Part ที่มี Part ของ 'Cylinder'
  • FileMesh - ผู้ใช้อัปโหลด Mesh ที่เทียบเท่ากับ FileMesh ที่สามารถใช้เท็กส์ได้โดยใช้สมบัติสมบัติ FileMesh.TextureId
  • หัว - รูปร่างหัวของตัวละคร
  • ลูกศร - รูปร่างลูกศรเหมือนลูกบอลขนาดเล็ก Part ที่มี Part.Shape ของลูกบอล แต่สามารถปรับแต่งได้อย่างอิสระทุกแกน
  • เหลี่ยมผืนผ้า - รูปร่างเหลี่ยมผืนผ้า, เหมือนกับ WedgePart
  • Torso - บล็อกที่มีด้านข้างเอียงเนื่องจากจะถูกยกเลิกการใช้งาน

หมายเหตุ, แต่ละ SpecialMesh.MeshType จะเคลื่อนไหวตามความต้องการเมื่อใช้ DataModelMesh.Scale สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้โปรดดูหน้าที่ Class.Data

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

SpecialMesh vs MeshPart

ขณะนี้มีสองวิธีในการใช้เมชชันที่สร้างขึ้น พวกเขากำลังใช้เมชชันพิเศษด้วย SpecialMesh.FileType ตั้งค่าไว้ที่ MeshPart หรือโดยการใช้ MeshPart

  • BasePart.Material แสดงผลอย่างถูกต้องบนเมชเมชเมื่อใช้ MeshPart และไม่ใช่เมื่อใช้เมชพิเศษ
  • MeshParts รวมถึงสมบัติสมบัติ MeshPart.CollisionFidelity คุณสมบัติของ MeshPart ซึ่งหมายถึง โมเดลการชนกันของ 0> Class.MeshPart0> สามารถตั
  • เมชของ MeshPart ขยายตัวในแกนทั้งหมดขึ้นอยู่กับ Size สมบัติของ MeshPart เมชของ 1> SpecialMesh1> ไม่
  • ตัววัตถุ SpecialMesh รวมถึงสมบัติสมบัติ Offset และ Scale โดยในขณะที่ MeshParts ไม่
  • สมบัติของ MeshId ของ SpecialMesh สามารถเปลี่ยนแปลงได้โดย Script หรือ 1>Class.LocalScript1> ในระหว่างการประ

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

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()
Mesh VertexColor

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.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end

สรุป

คุณสมบัติ

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

    กำหนดประเภทของเมชที่จะถูกประยุกต์ให้กับ BasePart ที่ SpecialMesh เป็นลูกโดยตรง

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

    MeshId คือรหัสเนื้อหาของเมชที่จะแสดง

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

    TexturereId คือรหัสเนื้อหาของเท็กซ์ที่จะถูกประยุกต์ให้กับเมช

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

    ค่าเริ่มต้นของเมชกำหนดตำแหน่งที่สัมพันธ์จาก BasePart.Position ของเมชที่จะปรากฏที่นี่

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

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

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

    เปลี่ยนสีของเนื้อผ้าเมช ที่ใช้กับ FileMesh.TextureId

คุณสมบัติ

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

เมชที่ SpecialMesh วัตถุใช้กับ BasePart ขึ้นอยู่กับสมบัติประเภท MeshType มีตัวเลือกหลายอย่าง

  • อิฐ - รูปร่างบล็อก, เทียบเท่ากับ BlockMesh
  • ทรงกระบอก - ทรงกระบอก, เหมือน Class.Part ที่มี Part ของ 'Cylinder'
  • FileMesh - ผู้ใช้อัปโหลด Mesh ที่เทียบเท่ากับ FileMesh ที่สามารถใช้เท็กส์ได้โดยใช้สมบัติสมบัติ FileMesh.TextureId
  • หัว - รูปร่างหัวของตัวละคร
  • ลูกศร - รูปร่างลูกศรเหมือนลูกบอลขนาดเล็ก Part ที่มี Part.Shape ของลูกบอล แต่สามารถปรับแต่งได้อย่างอิสระทุกแกน
  • เหลี่ยมผืนผ้า - รูปร่างเหลี่ยมผืนผ้า, เหมือนกับ WedgePart
  • Torso - บล็อกที่มีด้านข้างเอียงเนื่องจากจะถูกยกเลิกการใช้งาน

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

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

Mesh VertexColor

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.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end

วิธีการ

อีเวนต์