Oyuncular genellikle uzayın içinde bulundukları yerin bir parçası olduklarını hissetmeyi seviyorlar. Yüze Sanatıgeliştirici modülü oyuncuların işaretlerini bir deneyimde harfiah olarak bırakmasına izin verir.
Modül Kullanımı
Kurulum
Bir deneyimde Yüze Sanatı modülünü kullanmak:
从 Görüntü sayfasından aç Araç Kutusu ve seç Yaratıcı Dükkanı sayfasını.
Modelleri Sırala seçimi seçildiğinden emin olun, sonra Tümünü Gör düğmesine tıklayın, Kategoriler için.
Yerleştir ve Dev Modülleri mozülünü tıkla.
Yüze Sanatı modülünü bul ve tıkla, yoksa 3D görüntüsüne kaydır ve bırak.
In the Explorer window, move the entire SurfaceArt model into ServerScriptService . On running the experience, the module will distribute itself to various services and begin running.
Canvas'ı Yerleştirme
Modül, 3D dünyasına yerleştirebileceğiniz bir Yüzey Canvası modeli ile gelir. Bu model, oyuncuların yüzeyine sanat yerleştirmek için etkileşime geçecek olan şeydir.
Modülün ana dizininin Yüzey Canvas meshesini bulun Çalışma Alanı dizinindeki.
En üst düzeydeki Çalışma Alanı hiyerarşisine hareket ettir ve istediğin yere yerleştir.
Bir test oturumunu yayınladığınızda, oyuncular bir ProximityPrompt aracılığıyla nesneyle etkileşime geçebilir ve sanatı belirli yüze yerleştirebilir.
Canvas Yüzünü Değiştirme
Kapüşon altında, modül bir SurfaceGui kullanarak sanat öğelerini gösterir. Sanatın hangi yüze gösterileceğini yapılandırmak için:
Select the Yüzey Canvası mesh.
Propetler Pencere ın altında, Yüzey CanvasFace özelliğini Sağ değerinde bulun.
Özellikteki bir öğe tıklayın ve bir Enum.NormalId açıklayan altı değerden birini girin.
Özellik Değeri | Eşdeğer Normal ID |
---|---|
Önceki | Enum.NormalId.Front |
Geri gitmek. | Enum.NormalId.Back |
Sağa | Enum.NormalId.Right |
Sol taraftır | Enum.NormalId.Left |
Üstü | Enum.NormalId.Top |
Altı | Enum.NormalId.Bottom |
Özel Sanat Kaynaklarını Kullan
Deneyiminizin temasına uymak için, varsayılanlardan daha iyi uyarlanmış bir özel kaynak seti kullanabilirsiniz. Bu, 配置 fonksiyonunu, bir Script 从 ServerScriptService 呼叫 eden bir şeriftir.
Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))local customAssets = {CustomAsset1 = {name = "Custom Asset 1",assetId = "rbxassetid://7322508294",},CustomAsset2 = {name = "Custom Asset 2",assetId = "rbxassetid://7322547665",},}SurfaceArt.configure({assets = customAssets,})
Tüm Kanvasları Temizleme
Dünyadaki tüm mevcut sanatın tüm kanvaslarından kaldırmak için, bir Class.Script 'den Script işlevini çağırın.
Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))SurfaceArt.removeAllArt()
Özel Efektleri Göster
Bir sanat eserini yerleştirirken ek görsel efektleri içermek istediğiniz durumlar olabilir. Bu modül, istediğiniz sanat değiştirici modülüne bağlanabilen artChanged adlı bir etkinliği kullanıcınıza gösterir ve kendi mantığınızı ekleyebilirsiniz.
Yerel Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))
local function createParticleEmitter(canvas, position)
local attachment = Instance.new("Attachment")
attachment.Position = canvas.CFrame:PointToObjectSpace(position)
attachment.Axis = Vector3.new(0, 0, 1)
attachment.SecondaryAxis = Vector3.new(1, 0, 0)
attachment.Parent = canvas
local particleEmitter = Instance.new("ParticleEmitter")
particleEmitter.Speed = NumberRange.new(50)
particleEmitter.Rate = 50
particleEmitter.Color = ColorSequence.new(Color3.fromRGB(128, 254, 7))
particleEmitter.SpreadAngle = Vector2.new(35, 35)
particleEmitter.Parent = attachment
return attachment
end
SurfaceArt.artChanged:Connect(function(canvas, spot, spotPosition, artId, ownerId)
if artId then
-- 3 saniye boyunca bazı parıltıları göster
task.spawn(function()
local emitterAttachment = createParticleEmitter(canvas, spotPosition)
task.wait(3)
emitterAttachment:Destroy()
end)
end
end)
API İşaretçisi
Türler
Yüzey Sanatı Varlığı
Kanvas için kullanılacak görüntüler iki değerle temsil edilir.
Anahtar | Açıklama |
---|---|
name | Metadatasını görünen ad. |
assetId | Dahil edilecek görüntünün kaynağı. |
Fonksiyonlar
yapılandır
class.脚本 tabelasındaki önbelleği geçersiz hale getiren anahtarlar/değerler aracılığıyla varsayılan yapılandırma seçeneklerini üst üste geçersiz kılar. Bu işlev sadece Script ile bağlantı kurulabilir.
Anahtar | Açıklama | Varsayılan |
---|---|---|
enabled | Modülün işlevini açık veya kapalı bırakır. | doğru |
assets | Yüzey Sanatı Varlıkları türleri listesi. | (aşağıdaki kodu görüntüleyin) |
quotaPerPlayer | Her oyuncu tarafından yerleştirilebilen maksimum sanat eser sayısı. | 2 |
Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))SurfaceArt.configure({quotaPerPlayer = 4,promptKeyCode = Enum.KeyCode.T,promptMaxActivationDistance = 8,})
getCanvases
Tüm kanvasların SurfaceCanvas etiketiyle etiketlendiği içeriği iade eder.
Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))local canvases = SurfaceArt.getCanvases()
Yer Artı
Bir oyuncunun adına bir sanat eser programıyla yerleştirir. canvas yerleştirmeyi, SurfaceCanvas etiketini kullanarak sunucu başlatıldığında etiketlenmelidir. getCanvases ile geri dönen bir canvas'i kullanmak önerilir.
Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))
local remoteEvent = ReplicatedStorage:WaitForChild("SurfaceArtRemoteEvent")
remoteEvent.OnServerEvent:Connect(function(player)
-- Bloxy Ödülünü varsayılan sanat kaynaklarına ilk kanvasa yerleştirin
local canvases = SurfaceArt.getCanvases()
SurfaceArt.placeArt(player, canvases[1], "BloxyAward")
end)
tüm sanatı kaldır
Tüm yüzeylerden tüm sanat eserlerini kaldırır.
Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))SurfaceArt.removeAllArt()
Etkinlikler
artDeğiştirildi
Bir sanat eserinin kendi yerinde bir tuvalette değiştirildiğinde ateşlenir. Bir sanat eserinin kaldırıldığında, artId``nil olacaktır. Not edin ki bir sanat eserinin bir Vector3 değ
Parametreler | |
---|---|
canvas: BasePart | Eserin değiştirildiği tuvalet. |
nokta: Frame | Sanat eserini içeren Frame . |
spotPosition: Vector3 | Sanat eserinin yerleştirildiği doğru pozisyon. |
artId: string | Yeni sanat eserinin kimliği. |
sahibiÜrün kodu: number | UserId sanatı yerleştiren oyuncunun. |
Yerel Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))
SurfaceArt.artChanged:Connect(function(canvas, spot, spotPosition, artId, ownerId)
print("Art placed at:", spotPosition)
print("Art asset ID:", artId)
print("Art placed by:", ownerId)
end)
gösterilen
Bir oyuncu için bir Canvas etkileşim istemesi gösterildiğinde ateşlenir. Bağlantılı işlev, gösterilen Canvas'ı alır. Bu olay sadece bir LocalScript ile bağlantılanabilir.
Parametreler | |
---|---|
canvas: BasePart | İstemin gösterildiği alan. |
Yerel Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))
SurfaceArt.promptShown:Connect(function(canvas)
print(Players.LocalPlayer, canvas)
end)
Kayıtlanmış
Bir Canvas etkileşim istemesi gizlendiğinde ateş eder. Bağlantılı işlev, gösterilen Canvas'ı alır. Bu olay sadece bir LocalScript ile bağlantılanabilir.
Parametreler | |
---|---|
canvas: BasePart | İstemin gösterildiği alan. |
Yerel Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))
SurfaceArt.promptClosed:Connect(function(canvas)
print(Players.LocalPlayer, canvas)
end)
択器Gösterildi
Yüzey sanat seçici UI'si bir oyuncuya gösterildiğinde ateşlenir. Bu olay sadece bir LocalScript ile bağlanabilir.
Yerel Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))
SurfaceArt.selectorShown:Connect(function()
print(Players.LocalPlayer, "opened surface art selector")
end)
選擇器Hidden
Yüzey sanat seçici UI'si bir oyuncunun için gizlenmiş olunca ateşlenir. Bu olay sadece bir LocalScript ile bağlanabilir.
Yerel Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local SurfaceArt = require(ReplicatedStorage:WaitForChild("SurfaceArt"))
SurfaceArt.selectorHidden:Connect(function()
print(Players.LocalPlayer, "closed surface art selector")
end)