SpecialMesh
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Đối tượng SpecialMesh ứng dụng một lưới cho một BasePart để tùy thuộc vào đặ性 MeshType đó. Một số lựa chọn có sẵn.
- Gạch - Một hình dạng khối, tương đương với một BlockMesh
- FileMesh - Một người đã tải Mesh, tương đương với FileMesh mà một texture có thể được áp dụng bằng cách sử dụng thuộc tính FileMesh.TextureId
- Đầu - Một hình dạng đầu nhân vật
- Hình viên bi - Một hình viên bi, tương tự như một Part với một Part.Shape của 'Ball' nhưng có thể được thay đổi tự do trên tất cả các trục
- Hình cầu nhọn - Hình dạng cầu nhọn, giống như một WedgePart
- Torso - Một khối với các bên dối, do đó bị lỗi
Lưu ý, mỗi SpecialMesh.MeshType sẽ thay đổi kích thước khi sử dụng DataModelMesh.Scale, cho thêm thông tin về điều này xin vui lòng tham khảo trang trên DataModelMesh.Scale. Ống đặc biệt 2>Class.DataModelMesh.MeshType
Điều quan trọng là phải nhớ rằng khi sử dụng một SpecialMesh, chỉ có vẻ ngoài của một phần mới thay đổi. Mô hình va chạm của phần vẫn giữ nguyên. Ví dụ, một nhân vật sẽ không thể đi bộ đúng trên một lưới khi geometri lưới không được xem tài khoản.
SpecialMesh vs MeshPart
Hiện tại có hai cách để sử dụng một mô hình người dùng đã tạo. Họ đang sử dụng một SpecialMesh với SpecialMesh.FileType đặt là 'FileMesh', hoặc bằng cách sử dụng một MeshPart . Mặc dù, trên tổng thể, mô hì
- BasePart.Material hiển thị đúng trên mặt lưới khi sử dụng một MeshPart và không khi sử dụng một SpecialMesh
- MeshParts bao gồm thuộc tính MeshPart.CollisionFidelity có nghĩa là mô hình va chạm của một MeshPart có thể được thiết lập để giống với geometri của một 0> Class.MeshPart0>
- Thuộc tính MeshId của một SpecialMesh có thể được thay đổi bởi một Script hoặc 1> Class.LocalScript1> trong khi chạy. Thuộc tính <
Mẫu mã
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()
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
Tóm Tắt
Thuộc Tính
Xác định loại màn hình được ứng dụng cho BasePart mà SpecialMesh đang là con của.
MeshId là ID nội dung của mesh để được hiển thị.
Texturoid là ID nội dung của text được ứng dụng vào mạng lưới.
Sự thiếu hụt của một máy chủ làm cho nó không thể hiển thị các thành phần của một hình ảnh.
Kích thước của một mạng lưới xác định kích thước của mạng lưới so với các kích thước gốc của nó.
Đổi màu của một mảnh vải của một lưới, sử dụng với FileMesh.TextureId .
Thuộc Tính
MeshType
Lưới định hướng mà đối tượng SpecialMesh áp dụng cho BasePart phụ thuộc vào thuộc tính MeshType. Một số lựa chọn có sẵn.
- Gạch - Một hình dạng khối, tương đương với một BlockMesh
- FileMesh - Một người đã tải Mesh, tương đương với FileMesh mà một texture có thể được áp dụng bằng cách sử dụng thuộc tính FileMesh.TextureId
- Đầu - Một hình dạng đầu nhân vật
- Hình viên bi - Một hình viên bi, tương tự như một Part với một Part.Shape của 'Ball' nhưng có thể được thay đổi tự do trên tất cả các trục
- Hình cầu nhọn - Hình dạng cầu nhọn, giống như một WedgePart
- Torso - Một khối với các bên dối, do đó bị lỗi
Lưu ý, mỗi MeshType sẽ thay đổi kích thước khi sử dụng DataModelMesh.Scale, cho thêm thông tin về điều này, vui lòng xem trang trên DataModelMesh.Scale .
Mẫu mã
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