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, ketika diwarisi ke BaseParts mengubah tampilan bagian menjadi tampilan predefinished mesh. Catat, mereka hanya mengubah tampilan bagian dan bukan batas-batas fisik/kolisi bagian. Pengembang yang mencari untuk menerapkan Mesh ke bagian yang mengubah bagiannya menggunakan

Catat MeshPart dan CharacterMesh kelas tidak turun dari DataModelMesh.

Rangkuman

Properti

Properti

Offset

Baca Paralel

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

Cara menggunakan kompensasi mesh

Propiedad Offset mengubah posisi relatif posisi yang akan ditampilkan. Misalnya, OFFSET 0, 5, 0 akan menyebabkan meshes ditampilkan 5 studs di atas posisi BasePart .

Posisi BasePart tetap sama, yang berarti kotak tabrakan fisik bagian akan tetap berada di lokasi yang sama. Ini ditunjukkan dalam gambar di bawah ini di mana garis kontur hijau (a SelectionBox ) menunjukkan ekstensi dari BasePart .

Penggunaan lain untuk mengurangi kesalahan pengguna

Ada beberapa penggunaan yang menarik untuk property mesh offset.

  • Offset dan DataModelMesh.Scale dapat di Animasi menggunakan TweenService relatif murah karena mesin tidak perlu membuat perhitungan fisika / tabrakan apa pun karena BasePart tidak di pindahkan.
  • Mengubah hubungan antara meshes dan ekstensi tabrakannya (diseimbangkan oleh BasePart )

Contoh Kode

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 mesh menentukan ukuran mesh relatif terhadap dimensi aslinya.

Cara menggunakan skala mesh

Prop skala bekerja sedikit berbeda tergantung pada jenis mesh yang digunakan. Catat ukuran BasePart tetap sama, yang berarti kotak kolisi fisika bagian akan tetap sama.

  • SpecialMesh objek dengan SpecialMesh.FileType ditetapkan ke 'FileMesh' skala relatif terhadap dimensi asli mesh saat diunggah ke Roblox
  • BlockMesh objek atau SpecialMesh objek dengan SpecialMesh.FileType tetap di 'Brick', 'Wedge' atau 'Sphere' skala relatif terhadap 0> Class.BasePart.Size0> dari orang tua mereka
  • CylinderMesh objek atau SpecialMesh objek dengan SpecialMesh.FileType tetap di 'Cylinder' skala relatif terhadap Class.BasePart.Size dari orang tua mereka. Secara seragam untuk ketinggian silinder dan menjaga rasio 1: 1 untuk panjang dan lebar
  • SpecialMesh objek dengan SpecialMesh.FileType ditetapkan untuk 'Kepala' saat ini skala secara tidak standar. Pengembang seharusnya tidak mengandalkan ini sebagai rencana untuk mengubah perilaku ini
  • SpecialMesh objek dengan SpecialMesh.FileType yang diatur untuk skala Torso dalam skala non standar. Pengembang seharusnya tidak mengandalkan ini sebagai rencana untuk menghapus ketikmesh ini.

Demonstrasi skala Mesh

Perilaku di atas dapat dilihat dalam gambar demonstrasi berikut.

Skalierung lini relatif ke ukuran bagian untuk jaringan 'Brick', 'Wedge' dan 'Sphere'.

Skalading relatif terhadap meshes yang diunggah asli untuk 'FileMesh' meshes

Skalabilitas non-uniform terbatas untuk 'Cylinder' meshes

Penggunaan lain untuk skala mesh

Ada beberapa penggunaan yang menarik untuk property mesh offset.

  • DataModelMesh.Offset dan Scale dapat di Animasi menggunakan TweenService relatif murah karena mesin tidak perlu membuat perhitungan fisika / tabrakan apa pun karena BasePart tidak diubah.
  • Mengubah hubungan antara meshes dan ekstensi tabrakannya (diseimbangkan oleh BasePart )

Contoh Kode

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 Class.FileMesh . Catat bahwa property ini adalah FileMesh

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

Metode

Acara