DataModelMesh
*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.
DataModelMesh là một lớp trừu tượng mà các lớp khối lưới xuống.
Các lớp khối lưới là các đối tượng mà, khi được cha trở lại BaseParts thay đổi diện mạo của phần thành của một lưới được xác định trướcLưu ý, chúng chỉ thay đổi sự xuất hiện của phần và không phải ranh giới vật lý/va chạm của phần.Các nhà phát triển muốn áp dụng một lưới cho một phần thay đổi sự va chạm của phần nên sử dụng MeshParts .
Lưu ý các lớp MeshPart và CharacterMesh không xuống từ DataModelMesh.
Tóm Tắt
Thuộc Tính
Offset của một khối lượng quyết định vị trí tương đối từ BasePart.Position của một BasePart mà khối lượng sẽ được hiển thị tại.
Tỉ lệ của một khối lượng quyết định kích thước của khối lượng so với kích thước ban đầu của nó.
Thay đổi màu sắc của bề mặt khối lượng, được sử dụng với FileMesh.TextureId .
Thuộc Tính
Offset
Sự chênh lệch của một khối lưới xác định khoảng cách từ BasePart.Position của một BasePart mà lưới sẽ được hiển thị.
Cách sử dụng offset lưới
Thuộc tính Offset thay đổi vị trí tương đối mà lưới sẽ được hiển thị.Ví dụ, một sai lệch của 0, 5, 0 sẽ gây ra việc hiển thị lưới 5 đinh tán trên vị trí của BasePart .
Vị trí của BasePart vẫn không thay đổi, có nghĩa là hộp va chạm vật lý của phần sẽ vẫn ở cùng một vị trí.Điều này được minh họa trong hình ảnh dưới đây, nơi đường viền xanh lá (a SelectionBox ) hiển thị các giới hạn của BasePart .
Các sử dụng khác cho offset lưới
Có một số cách sử dụng thú vị cho tính chất offset mesh.
- Offset và DataModelMesh.Scale có thể được hoạt hình bằng cách sử dụng TweenService khá rẻ vì động cơ không cần thực hiện bất kỳ tính toán vật lý/va chạm nào vì BasePart không được di chuyển.
- Thay đổi mối quan hệ giữa lưới và phạm vi va chạm của nó (được xác định bởi BasePart )
Mẫu mã
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.
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
Tỉ lệ của một khối lượng quyết định kích thước của khối lượng so với kích thước ban đầu của nó.
Cách sử dụng mesh scale
Tính chất thước hoạt động khác nhau một chút tùy thuộc vào loại mesh được sử dụng.Lưu ý kích thước của BasePart vẫn không thay đổi, có nghĩa là hộp va chạm vật lý của phần sẽ vẫn giống nhau.
- SpecialMesh các đối tượng với SpecialMesh.FileType được đặt thành thước đo 'FileMesh' so với kích thước ban đầu của lưới khi nó được tải lên Roblox
- BlockMesh các đối tượng hoặc SpecialMesh các đối tượng với SpecialMesh.FileType được đặt thành 'Gạch', 'Góc cạnh' hoặc 'Khối cầu' tương đối với BasePart.Size của cha mẹ của chúng
- CylinderMesh các đối tượng hoặc SpecialMesh các đối tượng với SpecialMesh.FileType được đặt thành thước 'Hình trụ' so với BasePart.Size của cha của chúng.Đồng đều cho trục chiều cao của xi lanh và duy trì tỷ lệ 1:1 cho chiều dài và chiều rộng của xi lanh, bằng cách sử dụng giá trị thấp nhất.
- SpecialMesh các đối tượng với SpecialMesh.FileType được đặt thành 'Đầu' hiện đang mở rộng theo cách không chuẩn.Các nhà phát triển không nên dựa vào điều này vì có kế hoạch thay đổi hành vi này.
- SpecialMesh các đối tượng với SpecialMesh.FileType được đặt thành thước đo 'Torso' theo cách không chuẩn.Các nhà phát triển không nên dựa vào điều này vì có kế hoạch loại bỏ đánh máymesh này.
Trình diễn quy mô lưới
Hành vi trên có thể được nhìn thấy trong các hình minh họa minh họa sau.
Tỉ lệ tuyến tính so với kích thước phần cho 'Gạch', 'Góc cạnh' và 'Khối cầu'.
Tăng tuyến tính so với khối lượng ban đầu được tải lên cho khối lượng 'FileMesh'
Tăng kích thước không đồng đều cho khối lượng 'Cylinder'
Các sử dụng khác cho mesh scale
Có một số cách sử dụng thú vị cho tính chất offset mesh.
- DataModelMesh.Offset và Scale có thể được hoạt hình bằng cách sử dụng TweenService khá rẻ vì động cơ không cần thực hiện bất kỳ tính toán vật lý/va chạm nào vì BasePart không thay đổi.
- Thay đổi mối quan hệ giữa lưới và phạm vi va chạm của nó (được xác định bởi BasePart )
Mẫu mã
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.
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
Màu Vertex xác định sự thay đổi màu của Texture của một FileMesh .Lưu ý rằng thuộc tính này là một Vector3 hơn là một Color3 ; để chuyển đổi, sử dụng các thuộc tính Color3.R, Color3.G và Color3.B.
Mặc dù tính năng này cho phép sửa đổi cơ bản của một kết cấu, thay đổi hoàn toàn một kết cấu cung cấp nhiều kiểm soát hơn. Xem MeshPart để biết thêm chi tiết.