DataModelMesh

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Gezilemez

DataModelMesh, klasların aşağıladığı abstrakt bir klasadır.

Meshes kullanıcıları, BaseParts ile ilgili görünümü değiştiren objelerdir. Not, sadece bir meshenin görünümünü değiştirir ve parçanın çarpışma sınırlarını predefinlenmiş bir meshenin ile değiştirmez. Mesh'i bir parçaya uygulay

Class.MeshPart ve CharacterMesh sınıflarının DataModelMesh'den asla inmediğini unutmayın.

Özet

Özellikler

Özellikler

Offset

Paralel oku

Bir meshenin ofseti, meshenin görüntülenmesinden önce BasePart.Position ile meshenin görüntülenmesine kadar olan mesafeyi belirler.

Mesh Offset'ı nasıl kullanılır

Sıçrama özelliği, çapa olarak gösterilecek malzeme noktasını değiştirir. Örneğin, bir çapa of 0, 5, 0, malzeme noktasının BasePart noktasında 5 santimetre üzerinde gösterilmesine neden olur.

Class.BasePart pozisyonu hala değişmez, yani parçanın fiziksel çarpışma kutusu aynı yerde kalacaktır. Bu, aşağıdaki görüntüde gösterildiği gibi, yeşil hatlı (bir SelectionBox ) parçanın BasePart içindeki içeriği gösterir.

Meshes için başka kullanımlar

Meshes Offset özelliği için bir dizi ilginç kullanım var.

  • Sıfırlama ve DataModelMesh.Scale , motorun herhangi bir fiziksel/çarpışma hesabını yapması gerekmediği için oldukça ucuz bir şekilde animasyonlanabilir, çünkü TweenService hareket ettirilmez.
  • Mesh ve çarpışma uzayları arasındaki ilişkiyi değiştirir ( BasePart tarafından belirlenir)

Kod Örnekleri

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

Paralel oku

Bir meshenin ölçeği, meshenin orijinal boyutlarına göre meskenin boyutunu belirler.

Mesh Scale'ı nasıl kullanılır

Ölçek özelliği kullanılan mesaj türüne bağlı olarak biraz farklı çalışır. BasePart mesaj kutusunun boyutunun değişmediğini ve parçanın fiziksel çarpışma kutusunun aynı kalacağını not edin.

  • SpecialMesh nesneleri, SpecialMesh.FileType ile şu anda Roblox'a yüklenen malzeme ölçeğine göre Roblox'un orijinal boyutlarına göre şekillendirme ölçeğine skalasyon yapar
  • BlockMesh nesneleri veya SpecialMesh nesneleri ile SpecialMesh.FileType seti "Tuğla", "Kırıcı" veya "Küre" olarak aynı ölçekte eşit olarak skalayın 0> Class.BasePart.Size0> ile ebeveynlerinin arasında
  • CylinderMesh nesneleri veya SpecialMesh nesneleri ile SpecialMesh.FileType değerini 'Cylinder' eşdeğerinde tutarak çapa ölçeği skalasına 1:1 ölçeklenmiş olarak kaydırır. Silindir uzunlu
  • SpecialMesh nesneleri, SpecialMesh.FileType ile ayarlandığı için "baş" olarak mevcutta bir standart dışı şekilde büyür. Geliştiriciler bunu kullanmak için kullanılmamalıdır
  • SpecialMesh nesneleri SpecialMesh.FileType ile 'Gövde' ölçeğine bir ölçek olarak ayarlanmış olup, standart olmayan bir şekilde büyütülmüş. Geliştiriciler bu yazdepreciyon olarak kullanmamalıdır.

Mesh ölçeği gösterimi

Yukarıdaki davranış aşağıdaki gösterim görüntülerinde görülebilir.

“Tuğla”, “Kırıcı” ve “Küre” mesajları için parça boyutuna kadar yüzdesel ölçekleme.

FileMesh için orijinal yüklenmiş çizgi ölçeği skalasyonu

“Silindir” meshes için sınırlı ölçekleme

Mesh ölçeğinin başka kullanımları

Meshes Offset özelliği için bir dizi ilginç kullanım var.

  • DataModelMesh.Offset ve Scale, motorun herhangi bir fiziksel/çarpışma hesabını yapması gerekmediği için Class.TweenService kullanılarak oldukça ucuz bir şekilde animasyonlanabilir, çünkü TweenService değiştirilmediğinde hiçbir fiziksel/çarpışma hesabı yapılmaz.
  • Mesh ve çarpışma uzayları arasındaki ilişkiyi değiştirir ( BasePart tarafından belirlenir)

Kod Örnekleri

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

Paralel oku

VertexColor bir TextureFileMesh ın renk değişimini belirler. Not edin ki bu özellik bir

Bu özellik, bir tekstürün temel değiştirme izin verir, ancak bir tekstürü tamamen değiştirmek daha fazla kontrol sağlar. Ayrıntılar için MeshPart bakın.

Yöntemler

Etkinlikler