DataModelMesh
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
DataModelMesh, örüntü sınıflarından düşen soyut bir sınıftır.
Kafes sınıfları, bir parçanın görünümünü önceden tanımlanmış bir kafese değiştiren nesnelerdir, BaseParts örneğin bir kafesin görünümünü değiştirir.Not, sadece parçanın görünümünü değiştirirler ve parçanın fiziği/çarpışma sınırlarını değiştirmezler.Parçanın çarpışmasını değiştiren bir parçaya bir örgü uygulamak isteyen geliştiriciler MeshParts kullanmalıdır.
Not et MeshPart ve CharacterMesh sınıfları DataModelMesh'ten inmez.
Özet
Özellikler
Bir mesanın ofseti, mesanın görüntüleneceği noktanın mutlak konumunu belirler.
Bir meshin ölçeği, orijinal boyutlarına göre meshin boyutunu belirler.
Bir mesh'in dokusunun tonunu değiştirir, FileMesh.TextureId ile kullanılır.
Özellikler
Offset
Bir mesanın ofseti, mesanın görüntüleneceği noktasından uzaklığı belirler.
Kafes ofsetini nasıl kullanırım
Ofset özelliği, çizginin görüntülenmesi gereken nispi konumu değiştirir.Örneğin, 0, 5, 0'lık bir ofset, çemberin BasePart konumunun üzerinde 5 damga gösterilmesine neden olacaktır.
BasePart konumu değişmeden kalır, yani parçanın fizik çarpışma kutusu aynı konumda kalacaktır.Bunun aşağıdaki resimde gösterildiği gibi, yeşil hatlı (a SelectionBox ) çizginin BasePart uzantılarını gösterir.
Dokuma ofseti için diğer kullanımlar
Dokuma ofset özelliği için bir dizi ilginç kullanım var.
- Ofset ve çok ucuz olarak animasyonlanabilir, çünkü motor herhangi bir fiziksel/çarpışma hesaplaması yapmak zorunda değildir, çünkü hareket etmediği için.
- Kafes ve çarpışma sınırları arasındaki ilişkiyi değiştirme (BasePart tarafından belirlenir)
Kod Örnekleri
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
Bir meshin ölçeği, orijinal boyutlarına göre meshin boyutunu belirler.
Kafes ölçeği nasıl kullanılır
Ölçek özelliği, kullanılan çizginin türüne bağlı olarak biraz farklı çalışır.BasePart boyutunun değişmediğini not edin, yani parçanın fizik çarpışma kutusu aynı kalacak.
- SpecialMesh nesneler, SpecialMesh.FileType Roblox'a yüklendiğinde orijinal mesheşin boyutlarına göre 'FileMesh' ölçeğine ayarlanmıştır
- BlockMesh nesneler veya SpecialMesh nesneler, SpecialMesh.FileType 'Tuğla', 'Köşe' veya 'Küre' ölçekleri, ebeveynlerinin BasePart.Size 'sına göre eşit olarak ayarlanır
- nesneler veya nesneler, ebeveynlerinin ölçeğine göre 'Silindir' ölçeğine ayarlanır.Silindirlerin yükseklik eksenine eşit olarak ve silindirin uzunluğu ve genişliği için 1:1 oranını koruyarak, en düşük değeri kullanarak.
- SpecialMesh nesneler, SpecialMesh.FileType 'Kafa' olarak ayarlanmış şu anda standart olmayan bir şekilde ölçeklendirilir.Geliştiriciler bu davranışı değiştirmek için planlar olduğundan buna güvenmemelidir.
- SpecialMesh nesneleri, SpecialMesh.FileType 'Torso' ölçeğine standart olmayan bir şekilde ayarlanır.Geliştiriciler bu özelliğe güvenmemelidir, çünkü bu örüntü yazdeprece etme planları vardır.
Mesh ölçeği gösterimi
Yukarıdaki davranış aşağıdaki gösterim görüntülerinde görülebilir.
Parça boyutuna göre lineer ölçek 'Tuğla', 'Köşe' ve 'Küre' öğeleri için.
Dosya Dokusu için orijinal yüklü çizime göre lineer ölçekleme 'FileMesh' çizimleri
Cilindir meshları için eşit olmayan sınırlı ölçeklendirme
Kafes ölçeğinin diğer kullanımları
Dokuma ofset özelliği için bir dizi ilginç kullanım var.
- DataModelMesh.Offset ve Ölçek, motorun fiziksel/çarpışma hesaplamaları yapmasına gerek olmadığı için TweenService nispeten ucuz bir şekilde animasyonlanabilir, çünkü BasePart değiştirilmediği için.
- Kafes ve çarpışma sınırları arasındaki ilişkiyi değiştirme (BasePart tarafından belirlenir)
Kod Örnekleri
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
VertexColor bir Texture 'in renk değişimini belirler FileMesh.Bu özelliğin bir Vector3 değil bir Color3 olduğunu unutmayın; dönüştürmek için, Color3.R , Color3.G ve Color3.B özelliklerini kullanın.
Bu özellik bir dokunun temel değişikliğine izin veriyor olsa da, bir dokuyu tamamen değiştirmek daha fazla kontrol sağlar. Daha fazla ayrıntı için MeshPart bakınız.