DataModelMesh

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Tidak Dapat Dijelajahi

DataModelMesh adalah kelas abstrak dari mana kelas mesh turun.

Kelas Mesh adalah objek yang, saat diberi kepada BaseParts , mengubah penampilan bagian menjadi seperti mesh yang telah ditentukan sebelumnya.Catatan, mereka hanya mengubah penampilan bagian dan bukan batas fisika/tabrakan bagian.Pengembang yang ingin menerapkan mesh ke bagian yang mengubah kolisi bagian harus menggunakan MeshParts .

Perhatikan bahwa kelas MeshPart dan CharacterMesh tidak turun dari DataModelMesh.

Rangkuman

Properti

Properti

Offset

Baca Paralel

Offset dari mesh menentukan jarak dari BasePart.Position dari BasePart bahwa mesh akan ditampilkan.

Cara menggunakan offset mesh

Properti Offset mengubah posisi relatif di mana mesh akan ditampilkan.Sebagai contoh, offset 0, 5, 0 akan menyebabkan mesh ditampilkan 5 kancing di atas posisi BasePart .

Posisi BasePart tetap tidak berubah, artinya kotak kolisi fisika bagian akan tetap berada di lokasi yang sama.Ini ditunjukkan dalam gambar di bawah ini di mana garis hijau (a SelectionBox ) menunjukkan batas-batas BasePart .

Penggunaan lain untuk offset mesh

Ada beberapa penggunaan menarik untuk properti offset mesh.

  • Offset dan DataModelMesh.Scale dapat dianimasikan menggunakan TweenService relatif murah karena mesin tidak perlu melakukan perhitungan fisika/tabrakan apa pun karena BasePart tidak dipindahkan.
  • Mengubah hubungan antara mesh dan ekstensi tabrakannya (ditentukan oleh BasePart )

Contoh Kode

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

Baca Paralel

Skala dari mesh menentukan ukuran mesh relatif terhadap dimensi aslinya.

Cara menggunakan skala mesh

Properti skala bekerja sedikit berbeda tergantung pada jenis mesh yang digunakan.Perhatikan ukuran BasePart tetap tidak berubah, artinya kotak kolisi fisika bagian akan tetap sama.

Demonstrasi skala mesh

Perilaku di atas dapat dilihat dalam gambar demonstrasi berikut.

Skalarisasi linier terhadap ukuran bagian untuk 'Bata', 'Pasak' dan 'Sfera' meshes.

Skalierung linier terhadap mesh asli yang diunggah untuk 'FileMesh' meshes

Skala terbatas tidak seragam untuk 'Cylinder' meshes

Penggunaan lain untuk skala mesh

Ada beberapa penggunaan menarik untuk properti offset mesh.

  • DataModelMesh.Offset dan Skala dapat dianimasikan menggunakan TweenService relatif murah karena mesin tidak perlu melakukan perhitungan fisika/tabrakan apa pun karena BasePart tidak diubah.
  • Mengubah hubungan antara mesh dan ekstensi tabrakannya (ditentukan oleh BasePart )

Contoh Kode

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

Baca Paralel

Warna Vertex menentukan perubahan warna dari Texture dari sebuah FileMesh .Perhatikan bahwa properti ini adalah Vector3 bukan Color3 ; untuk dikonversi, gunakan properti Color3.R , Color3.G , dan Color3.B .

Meskipun properti ini memungkinkan modifikasi dasar pada tekstur, mengubah seluruh tekstur memberikan lebih banyak kontrol. Lihat MeshPart untuk lebih banyak rincian.

Metode

Acara