Workspace

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
Hizmet

Çekirdek işlevi Workspace , 3B dünyada var olan nesneleri tutmak, etkili bir şekilde BaseParts ve Attachments .Bu tür nesneler Workspace 'in soyundan gelirken, aktif olacaklar.For BaseParts için, bu, onların görüntüleneceği ve diğer parçalarla ve dünyayla fiziksel olarak etkileşime gireceği anlamına gelir.For Attachments için, bu, onlara ait nesnelerin, örneğin ParticleEmitters , Beams ve BillboardGuis gibi, görüntülenmesi demektir.

Bu davranışı anlamak önemlidir, çünkü nesneler gerekmediğinde Workspace çıkarılabilirler.Örneğin, farklı bir harita oynandığında Models haritası kaldırılabilir.3B dünyada hemen gerekli olmayan nesneler genellikle ReplicatedStorage veya ServerStorage depolanır.

Aktif 3B nesnelerin tutucusu olarak rolüyle, Workspace bir dizi parça, konumları ve bunlar arasındaki bağlantılar ile ilgili yararlı işlevleri içerir.

İş Alanına Erişim

Workspace birkaç şekilde erişilebilir, hepsi de geçerlidir.

  • workspace
  • game:GetService("Workspace")
  • game.Workspace
Notlar
  • Dekorasyon gerektiren nesneler, örneğin ve , bir dekoratör belirtilmediğinde ebeveyn olarak pozisyonunda olacaktır.
  • sınıfından miras alınan ve yöntemleri, yalnızca pluginlerde kullanılabilecek ve tarafından geçersizleştirilir.
  • Workspace 'yi silmek imkansızdır.
  • Workspace otomatik olarak temizler BaseParts aşağıya düşen FallenPartsDestroyHeight .
  • Bir müşterinin mevcut Camera nesnesine Workspace.CurrentCamera özelliği kullanılarak erişilebilir.
  • Terrain nesnesine Workspace.Terrain özelliği kullanılarak erişilebilir.

Özet

Özellikler

Şuradan alınan Özellikler: Model
  • Eklenti Güvenliği
    Paralel oku

    Aktif durum yayınıyla deneyimler için modeldeki ayrıntı seviyesini ayarlar.Sets the level of detail on the model for experiences with instance streaming enabled.

  • Instans yayını etkinleştirildiğinde model yayın davranışını Models kontrol eder.

  • Birincil parçası Model , veya nil eğer açıkça belirtilmediyse.

  • Çoğaltılmamış
    Betiklenemez
    Paralel oku

    Modelin etrafındaki pivot etrafında ölçeklendirilmesi için yalnızca editör tarafından kullanılan özellik. Bu özelliği ayarlamak, ölçeğin sanki Model/ScaleTo çağrılmış gibi hareket edeceğini değiştirecektir.

  • Çoğaltılmamış
    Paralel oku

    Hangi noktada bir Model döndürme noktasının bulunduğunu belirler bulunmuyor ve bunun bir set Model.PrimaryPart içerdiği yer.

Şuradan alınan Özellikler: PVInstance

Yöntemler

Şuradan alınan Yöntemler: WorldRootŞuradan alınan Yöntemler: Model
  • AddPersistentPlayer(playerInstance : Player):()

    Bu modeli belirtilen oyuncu için kalıcı olarak ayarlar. ModelStreamingMode eklemelerin sonucunda davranışın değiştirilmesi için değiştirilmesi gerekirse PersistentPerPlayer olarak ayarlanmalıdır.

  • Bir Model'in tüm parçalarını içeren bir hacmin açıklamasını döndürür.

  • 'nin tümünü içeren en küçük sınırlayıcı kutunun boyutunu döndürür, eğer ayarlanırsa ile uyumlu olur.

  • Bu model nesnesi için kalıcı olan tüm Player nesnelerini döndürür.Davranış, bu yöntemin bir Script veya bir LocalScript 'dan çağrılıp çağrılmadığına bağlı olarak değişir.

  • Yeni oluşturulan modeller için varsayılan 1'e döner ve Model/ScaleTo aracılığıyla ölçeklendirildiğinde değişecektir.

  • MoveTo(position : Vector3):()

    PrimaryPart ı verilen pozisyona taşır. Birincil bir parça belirtilmediyse, modelin kök parçası kullanılacaktır.

  • RemovePersistentPlayer(playerInstance : Player):()

    Bu modeli belirtilen oyuncu için artık kalıcı olarak yapmaz. davranışın kaldırma sonucu değiştirilmesi için değiştirilmesi gerektiğinde değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin deçin değiçin değiçin değin değin değiçin değin değin değiçin değin değin değin değiçin değin değin değiçin değin değin değiçin değin değin değin değiçin değin değin değiçin değin değin değiçin değin değin değin değiçin değin değin değiçin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değ

  • ScaleTo(newScaleFactor : number):()

    Modelin ölçek faktörünü ayarlar, böylece tüm alt örneklerin boyutlandırma ve konumunu ayarlar ve ölçek faktörü 1 olduğunda ilk boyutları ve konumları ile ilgili bu ölçek faktörüne sahip olurlar.

  • TranslateBy(delta : Vector3):()

    Verilen Model ofsetiyle bir Vector3 değiştirir, modelin yönünü koruyarak.Yeni pozisyonda zaten başka bir BasePart veya Terrain varsa, Model o nesneyi üzerine geçecektir.

Şuradan alınan Yöntemler: PVInstance

Özellikler

AirDensity

Paralel oku

Zemin seviyesi ( Y 0) RMU/stud³ birimlerindeki hava yoğunluğu (RMU/stud³ birimlerindeki aerodinamik kuvvetin hesaplanması için kullanılır Roblox Birimleri ), Workspace.FluidForces eğer Experimental ise kullanılırsa aerodinamik güç hesaplanır .Varsayılan, standart sıcaklık ve basınçta gerçekçi deniz seviyesi hava yoğunluğuna karşılık gelir.Hava yoğunluğu, Y yüksekliğinin artmasıyla birlikte azalır ve 100,000 çivilerde yer seviyesinin değerinin %5'ine ulaşır.0'ın Y altında, hava yoğunluğu giriş değerinde sabitlenir.

AllowThirdPartySales

Çoğaltılmamış
Paralel oku

Bu Workspace özelliği, diğer kullanımlar tarafından oluşturulan varlıkların oyunda satılabileceğini belirler.

Üçüncü taraf satışları nedir?

Bu değer yanlış olduğunda, varsayılan olarak, sadece yer yaratıcısı tarafından oluşturulan varlıklar (bir oyuncu veya bir grup olabilir) ve Roblox kullanarak MarketplaceService satılabilir.

Çoğu durumda, oyunlar üçüncü taraf varlıkları satmak zorunda değildir.Ancak, takas oturumları gibi bazı oyunlar bu özelliği gerektirir ve bu nedenle bir seçenek olarak mevcuttur.

Üçüncü taraf ürünleri hangilerini satabilirim?

Not, geliştirici ürünleri sadece ilişkili oldukları oyunda satılabilir, AllowThirdPartySales'in neye ayarlandığına bakılmaksızın.Bu özellik Oyun Geçişleri ve kıyafetleri etkiler.

AvatarUnificationMode

Betiklenemez
Paralel oku

ClientAnimatorThrottling

Paralel oku

Yerel müşteri için kullanılacak Enum.ClientAnimatorThrottlingMode belirtir.

Etkinleştirildiğinde, uzaktan simüle edilen Model örneklerdeki animasyonlar sınırlandırmaya başlayacaktır. Sınırlandırıcı, sınırlandırma yoğunluğunu kullanarak hesaplar:

  • Bir Model 'nin Camera ile ilgili görünürlüğü
  • Oyun İçi FPS
  • Aktif animasyon sayısı

CurrentCamera

Çoğaltılmamış
Paralel oku

Yerel oyuncu tarafından kullanılan Camera nesne.

CurrentCamera nasıl kullanılır

Bir müşterinin nesnesini ararken, "Kamera" adında bir çocuğu aramak yerine bu özelliği kullanın.

Bu özelliği ayarladığınızda, önceki dahil olmak üzere tüm diğer nesneler yok edilir.Bu özelliği nil veya çalışma alanının bir mirasçısı olmayan bir kameraya ayarlarsanız (ya da CurrentCamera başka bir şekilde yok edilirse), yeni bir Camera oluşturulur ve atanır.Bu senaryolardan kaçının, çünkü kamerayı yok etmek istenmeyen sonuçlara neden olabilir.

Daha fazla bilgi için, Kamerayı Kodlama bakın.

DistributedGameTime

Çoğaltılmamış
Paralel oku

Oyunun çalıştığı süre, saniyelerle, miktarı.

Başlığa rağmen, bu değer şu anda istemci ve sunucu arasında "Dağıtılmış" değil.Bunun yerine, sunucuda sunucunun ne kadar süredir çalıştığını temsil eder.Müşteride, müşterinin sunucuya ne kadar süredir bağlı olduğunu temsil eder.

Geliştiriciler yukarıdaki davranışa güvenmemelidir ve bu özellik gelecekte müşteriler ve sunucu arasında senkronize edilebilir.

Programın çalışmaya başladığından beri süre arayanlar, yerine 'time' işlevini kullanmalıdır.DağıtılmışOyunSüresi ve alternatifleri arasında bir karşılaştırma görmek için aşağıya bakın.


local Workspace = game:GetService("Workspace")
print(Workspace.DistributedGameTime) -- Time the game started running
print(os.time()) -- Time since epoch (1 January 1970, 00:00:00) UTC
print(tick()) -- Time since epoch (1 January 1970, 00:00:00) system time
print(time()) -- Time the game started running
print(elapsedTime()) -- Time since Roblox started running

FallHeightEnabled

Eklenti Güvenliği
Paralel oku

FallenPartsDestroyHeight

Eklenti Güvenliği
Paralel oku

Bu özellik, Roblox Motorunun düşen BaseParts ve atalarının Models ını otomatik olarak kaldırdığı yüksekliği belirler ve bunları Workspace ebeveynleştirerek nil 'a taşır.Bu, haritadan düşen parçaların sonsuza dek düşmeye devam etmesini engellemek içindir.

Bu davranış nedeniyle kaldırılan bir parça bir Model içindeki son parça ise, bu model de kaldırılacaktır.Bu, parçanın tüm model ataları için geçerlidir.

Bu özellik -50,000 ve 50,000 arasında sıkıştırılmıştır, çünkü BaseParts noktadan büyük bir mesafede yüzde hata nedeniyle doğru bir şekilde simüle edilmiyor veya görüntülenmiyor.

Bu özellik, yazılımlar tarafından okunabilir, ancak yalnızca eklentiler, komut çubuğu veya Studio'daki özellik penceresi tarafından ayarlanabilir.

FluidForces

Betiklenemez
Paralel oku

Bu özellik etkinleştirildiğinde, fizik motoru BaseParts özelliklerinin EnableFluidForces özelliğinin doğru olduğu hava dinamik güçlerini hesaplar.Varsayılan, Default , hava dinamik güçlerini devre dışı bırakır.Bu özelliğin yazılım aracılığıyla ayarlanamayacağını ve bunun yerine Studio'da değiştirilmesi gerektiğini unutmayın.

GlobalWind

Paralel oku

Bu özellik, rüzgarın deneyime estiği yön ve gücü belirtir ve arazi çimlerini, dinamik bulutları ve parçacıkları etkiler.Detaylar için Küresel Rüzgar makalesini görün.

Gravity

Paralel oku

Düşmeye uygulanan yerçekimi nedeniyle hızlanmayı belirler BaseParts .Bu değer saniye başına çiviler olarak ölçülür ve varsayılan olarak 196.2 çiviler/saniye 2 olarak ayarlanır.Bu değeri değiştirerek geliştiriciler oyunda daha düşük veya daha yüksek yerçekiminin etkilerini simüle edebilirler.

Kod Örnekleri

This script creates a touch pad in the workspace that, when touched, will reduce the game's gravity. Activating the pad again will switch back to normal gravity.

Low Gravity Button

local MOON_GRAVITY_RATIO = 1.62 / 9.81
local DEFAULT_GRAVITY = 196.2
local MOON_GRAVITY = DEFAULT_GRAVITY * MOON_GRAVITY_RATIO
-- Create a touch pad
local pad = Instance.new("Part")
pad.Size = Vector3.new(5, 1, 5)
pad.Position = Vector3.new(0, 0.5, 0)
pad.Anchored = true
pad.BrickColor = BrickColor.new("Bright green")
pad.Parent = workspace
-- Listen for pad touch
local enabled = false
local debounce = false
local function onPadTouched(_hit)
if not debounce then
debounce = true
enabled = not enabled
workspace.Gravity = enabled and MOON_GRAVITY or DEFAULT_GRAVITY
pad.BrickColor = enabled and BrickColor.new("Bright red") or BrickColor.new("Bright green")
task.wait(1)
debounce = false
end
end
pad.Touched:Connect(onPadTouched)

IKControlConstraintSupport

Betiklenemez
Paralel oku

IKControls için kısıtlamalara destek sağlar.The Default değeri Enabled ile aynıdır.Devre dışı bırakıldığında, IKControls fiziğin kısıtlarını görmezden gelir.Ek bilgiler için IKControl bakın.

InsertPoint

Çoğaltılmamış
Paralel oku

MeshPartHeadsAndAccessories

Betiklenemez
Paralel oku

Karakter Başları ve Aksesuarlarının MeshParts olarak indirilip indirilmeyeceğini ayarlar.The Default değeri Enabled ile aynıdır.Bu özellik etkinleştirildiğinde, yerleşik avatarlar karakterin Kafası ve Aksesuarları için MeshParts kullanacaktır.

ModelStreamingBehavior

Betiklenemez
Paralel oku

MoverConstraintRootBehavior

Betiklenemez
Paralel oku

Aşağıdaki kısıtlamalardan herhangi birini kullanan mekanizmalar için montaj kök parçasını seçmek için kullanılan mantığı kontrol eder:

Bu özellik Enum.MoverConstraintRootBehaviorMode.Enabled olarak ayarlanırsa, bu kısıtlamalar bir kısıtlamanın iki parça arasında güç aktarmadığı durumda montaj kök parçasını seçerken göz ardı edilecektir (bazı örnekler AngularVelocity.ReactionTorqueEnabled , false , veya AlignPosition.ReactionForceEnabled olarak ayarlanırsa false , veya AlignOrientation.Mode olarak ayarlanırsa Enum.OrientationAlignmentMode.OneAttachment ).

Bu özellik Enum.MoverConstraintRootBehaviorMode.Disabled olarak ayarlanırken, bu kısıtlar montaj kök parçasını seçerken yanlış olarak dikkate alınabilir ve bu kısıtlamaları bir mekanizmaya eklerken tutarsız ağ sahipliği ve gecikmeye neden olur.

PathfindingUseImprovedSearch

Betiklenemez
Paralel oku

PhysicsImprovedSleep

Betiklenemez
Paralel oku

PhysicsSteppingMethod

Betiklenemez
Paralel oku

Çözücünün fiziği simülasyonunu zaman içinde nasıl ilerleteceğini ayarlar.Bu seçenek yazılamaz ve Studio içindeki Fizik Adım Yöntemi özelliğinden Çalışma Alanı içinde ayarlanmalıdır.Ayrıntılar için Adaptif Süre Takibi bakın.


<th>Açıklama</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Uyarlanabilir</b></td>
<td>Motor, 240 Hz, 120 Hz veya 60 Hz'lik bireysel montajlar için optimum simülasyon oranları atamaya çalışır.Bu ayar sözleşme imzalamaiçin optimize edilir.</td>
</tr>
<tr>
<td><b>Düzeltildi</b></td>
<td>Çalışma alanındaki tüm simüle edilmiş montajlar 240 Hz'de ilerleyecek. Bu seçenek en iyi stabilite ve simülasyon doğruluğu için uygundur.</td>
</tr>
<tr>
<td><b>Varsayılan</b></td>
<td>Mevcut varsayılan değer <b>Düzeltildi</b> .</td>
</tr>
</tbody>
Seçenek

Farklı simülasyon oranlarının montajlarının Constraints veya çarpışma yoluyla bağlandığında, birleşik mekanizmanın istikrar için en yüksek simülasyon oranına geçeceğini unutmayın.

PlayerCharacterDestroyBehavior

Betiklenemez
Paralel oku

PrimalPhysicsSolver

Betiklenemez
Paralel oku

RejectCharacterDeletions

Betiklenemez
Paralel oku

RenderingCacheOptimizations

Betiklenemez
Paralel oku

ReplicateInstanceDestroySetting

Betiklenemez
Paralel oku
Paralel oku

SandboxedInstanceMode

Betiklenemez
Paralel oku

SignalBehavior

Betiklenemez
Paralel oku

Bu özellik, olay iptal edildiğinde olay işleyicilerinin hemen yeniden başlatılıp başlatılmayacağını veya erteleme yapıldıktan sonra daha sonra yeniden başlatılacağını belirler.Yeniden başlatma noktaları şu anda şunları içeriyor:

Daha fazla bilgi için, Ertelenmiş Etkinlikler bakın.

StreamOutBehavior

Betiklenemez
Paralel oku

Yayın Davranışı içeriğin cihaz Hafıza Koşullarına veya Yayın Yarıçapına dayanarak çıkarılacağı yerleri kontrol eder, ya da cihaz Hafıza Koşullarına dayanarak veya Yayın Yarıçapına dayanarak yayınlanır.

Ayrıca bakın:

StreamingEnabled

Eklenti Güvenliği
Paralel oku

Yayın Etkinleştirildi özelliği, oyun içeriğinin yayınlanmasının dünyaiçin etkinleştirildiğini belirler.Bu özellik yazılamaz ve bu nedenle Studio'daki Çalışma Alanı nesnesine ayarlanmalıdır.

Ayrıca bakın:

StreamingIntegrityMode

Betiklenemez
Paralel oku

Eğer örnek yayın yapıyorsa bir oyuncunun karakteri, oyuncunun istemediği bir bölgeye dünyaya yayınlanmadıysa, bir deneyim oyuncunun istemediği şekilde davranabilir.Yayın bütünlüğü özelliği, bu potansiyel olarak sorunlu durumlardan kaçınmanın bir yolunu sunar.

StreamingMinRadius

Betiklenemez
Paralel oku

Yayın Minimum Yarıçapı özelliği, oyuncunun karakteri veya en yüksek öncelikte yayınlanacak içeriklerin yayınlanacağı mevcut ReplicationFocus çevresindeki yarıçapı gösterir.Varsayılan 64 çivilere.

Varsayılan minimum yarıçapı artırmak sırasında, bunun diğer bileşenlerin pahasına daha fazla hafıza ve daha fazla sunucu bant genişliği gerektirmesi nedeniyle dikkatli olunmalıdır.

Ayrıca bakın:

StreamingTargetRadius

Betiklenemez
Paralel oku

Yayın Hedefi Yarıçapı özelliği, oyuncunun karakterinden veya içeriğin yayınlanacağı mevcut ReplicationFocus dakikadan maksimum uzaklığı kontrol eder.Varsayılan 1024 çivilere.

Motorun hedeflenen yarıçapın ötesinde daha önce yüklü içeriği muhafaza etmesine izin verildiğini unutmayın, bellek izni verdiği sürece.

Ayrıca bakın:

Terrain

Salt Okunur
Çoğaltılmamış
Paralel oku

Bu özellik, Terrain nesneye referans veren Workspace nesneye referans verir.

Terrain object within the Workspace hierarchy

Daha fazla bilgi için Çevresel Arazi bakın.

TouchEventsUseCollisionGroups

Betiklenemez
Paralel oku

TouchesUseCollisionGroups

Betiklenemez
Paralel oku

Bu özellik, farklı gruplarda çarpışmayı engellemek için ayarlanan parts ın çarpışma ve dokunma olaylarını görmezden geleceğini belirler.Varsayılan olarak, bu özelliğin değeri false olarak ayarlanır.

Bu özellik etkinleştirildiğinde, farklı gruplardaki parçaların çarpışmaması için ayarlandığı durumda da CanTouch özelliği, BasePart.CanCollide'nin reddedildiği gibi benzer şekilde göz ardı edilecektir.CanTouch'un davranışı hakkında daha fazla bilgi için, mülk sayfasını ziyaret edin.

Yöntemler

GetNumAwakeParts

Paralel yaz

Fiziksel olarak aktif sayılan BaseParts sayısını döndürür, çünkü yakın zamanda fiziğin etkisi altında kaldı.

Bu işlev, kaç tane BaseParts fiziksel güçler tarafından veya son zamanlarda etkilendiği fiziksel güçler tarafından etkilendiğini gösterir.


local Workspace = game:GetService("Workspace")
print(Workspace:GetNumAwakeParts())

Uyuyan vs Uyanık Parçalar

İyi bir sözleşme imzalamasağlamak için Roblox, fiziğin 'uyku' durumuna uygulanmadığı BaseParts içinde ayarları yapar.BaseParts ile BasePart.Anchored set edilmiş doğru, örneğin, fiziğin onlara uygulanmadığı için daima uyuyacaktır.Bir kuvvet sabit olmayan bir BasePart 'e uygulandığında, 'uyanık' bir durum uygulanacaktır.Bir BasePart uyanırken Roblox fizik motoru, parça ile fiziksel kuvvetlerin doğru bir şekilde etkileşime girmesini sağlamak için sürekli hesaplamalar yapar.BasePart artık fiziksel güçlere tabi olmadığında, 'uyku' durumuna geri dönecektir.


Dönüşler

Uyanık parça sayısı.

GetPhysicsThrottling

Paralel yaz

Yüzde 0 ile 100 arasında bir tamsayı döndürür, fiziğin simülasyonunun şu anda sınırlandırıldığı yüzdeyi temsil eder.

Bu işlev, fiziğin yavaşlatılıp yavaşlatılmadığını ve ne ölçüde olduğunu belirlemek için kullanılabilir.

Fizik sınırlaması nedir?

Fizik sınırlaması, fizik motorunun oyunu gerçek zamanlı olarak takip edemediğini tespit ettiğinde gerçekleşir.Fiziğin sınırlandırıldığında, daha az sıklıkla güncellenecek ve BaseParts daha yavaş hareket etmesine neden olacak.

Sınırlamayı kaldırmadan, fizik simülasyonu oyundan daha da geride kalacaktı.Bu, daha düşük çerçeve oranlarına ve diğer istenmeyen davranışlara yol açabilir.

Humanoids ile ilişkili nesneler fiziğin sınırlandırılmasından muaftır.

Ayrıca bakın Workspace:SetPhysicsThrottleEnabled() .

Fiziğin sınırlanmasını göstermek

Geliştiriciler daima fiziği motorunu aşırı yükleyen yerler oluşturmaktan kaçınmalıdır, çünkü oyuncular için alt seviye deneyime yol açar.Bununla birlikte, araştırma amaçları için fiziğin sınırlandırılmasını simüle etmek isteyenlerin yalnızca çok hızlı bir şekilde Parts oluşturması gerekir.


local Workspace = game:GetService("Workspace")
local i = 0
while true do
i += 1
if i % 5 == 0 then
task.wait()
end
local part = Instance.new("Part", Workspace)
end

Dönüşler

Fizik simülasyonunun şu anda sınırlandırıldığı yüzde gerçek zaman.

GetRealPhysicsFPS

Paralel yaz

Fiziğin şu anda simüle edildiği saniye başına görüntü sayısını döndürür.

Kötü kullanıcılarla mücadele etmek için GetRealPhysicsFPS kullanımı

Bu işlevin yaygın bir kullanımı, casusların daha hızlı hareket etmek için yerel fizik çerçeve oranlarını artırdıklarını tespit etmektir.Bu genellikle bir istemcinin GetRealPhysicsFPS'sinin sonucunu normal koşullarda ihlal edilmeyecek maksimum ile karşılaştırarak yapılır (genellikle 65 veya 70).Bu sınır ihlal edilirse, geliştiriciler o Player i oyundan kaldırmak için Player:Kick() işlevini kullanabilir.Bu uygulamanın bazen etkili olsa da, müşteri tarafı anti-hile önlemlerinin asla %100 güvenilir olmadığını unutmak önemlidir.


Dönüşler

Fiziğin şu anda simüle edildiği saniye başına görüntü sayısını döndürür.

Kod Örnekleri

Speed exploiters commonly increase their local physics FPS in order to increase their character speed. This can be detected from a LocalScript by checking if the player's physics FPS is over the maximum:

Workspace:GetRealPhysicsFPS

local Players = game:GetService("Players")
local player = Players.LocalPlayer
while task.wait(1) do
if workspace:GetRealPhysicsFPS() > 65 then
player:Kick()
end
end

GetServerTimeNow

Paralel yaz

GetServerTimeNow() sunucudaki mevcut süreyle ilgili en iyi yaklaşımı müşteriden geri döndürür.Bu, senkronize deneyimler oluşturmak için yararlıdır, çünkü her müşteri, saat dilimi veya yerel saatinden bağımsız olarak aynı sonuçları alacaktır.

Bu, os.time() ile kullanılabilecek benzer bir Unix tarihi döndürür, os.date() veya DateTime.fromUnixTimestamp() ile kullanılabilir.

Bu işlev tarafından döndürülen tarihçe, düzleştirilerek şöyle olur:

  • Tekdüze; değeri asla azalmayacak.
  • Yerel saatle aynı oranda 0.6% içine hareket eder.

GetServerTimeNow()``Datatype.DateTime.now() 'a kıyasla çağrılmak pahalıdır ve os.clock() 'den daha az hassastır, bu yüzden bir olayın doğru gerçek dünya zamanında başlayacağından emin olmak veya bir dizi olayı düzenli olarak ayarlamak için kullanılmalıdır.

Bu işlev sunucuya bağlıdır, bu nedenle bağlantılı olmayan bir istemciden çağırmak bir hata verecektir.Ayrıca, bu işlevin zamanlı ödüller gibi şeyler için uygun olmadığını unutmayın, çünkü sunucuda bu tür zamanlayıcıları izlemeye göre güvenli değildir.

Ayrıca bakın:


Dönüşler

sunucutahmini Unix zaman damgası.

JoinToOutsiders

()

Bu işlev, belirtilen Parts ve herhangi bir dokunan parça arasında parçaların yüzeylerine ve belirtilen ortak oluşturma moduna bağlı olarak bağlar oluşturur.

Bu işlev, belirtilen Parçalar ve herhangi bir düz temas yüzeyi arasında bağlar oluşturur, parça yüzeylerine ve belirtilen ortak oluşturma moduna bağlı olarak.

  • Yapıştırıcı, Çiviler, Girişler, Evrensel, Kaynak ve Düz yüzeylerin hepsi kaynak örnekleri oluşturacaktır.
  • Küreler hiçbir şeye yüzey yapıştırması yapmayacaktır. Silindirlerin kenarları yuvarlak olmayacak, ancak düz uç kenarları olacak.
  • Kapak ve Motor yüzeyleri hala parça şekline rağmen Rotate ve RotateP ortak örnekler oluşturacaktır.

İlk parametre bir BaseParts düzenli bir dizi.Katılar yalnızca dize içindeki parçalar arasında oluşturulacak ve dize içinde değil.Dizideki parçalar arasında bağlantılar oluşturulmayacaktır.

İkinci parametre, eklemlerin nasıl oluşturulacağını belirleyen bir Enum.JointCreationMode dır.Herhangi bir enum değerini, Enum.JointCreationMode.All veya Enum.JointCreationMode.Surface geçmek, Hep Katıl'a eşdeğer olan aynı davranışa sahiptir

Bu işlev, kullanıcı bir seçimi taşımayı bitirdiğinde Roblox Studio Taşıma aracı tarafından kullanılır.Plugin:GetJoinMode() ve Workspace:UnjoinFromOutsiders() ile birlikte, özel stüdyo derleme araçları geliştirirken katılma işlevini korumak için kullanılabilir.Bir örnek için aşağıdaki parçaları görün.


local Workspace = game:GetService("Workspace")
-- Seçimin taşınması bitirildi; bağlantılar yapın
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end

local Workspace = game:GetService("Workspace")
-- Bir seçim hareket etmeye başladı; kırma eklemleri
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end

Parametreler

objects: Instances

Bağlantıların yapılması gereken bir dizi BaseParts için.

Varsayılan değer: ""

Kullanılacak Enum.JointCreationMode . İçeri aktarma Enum.JointCreationMode.All veya Enum.JointCreationMode.Surface geçmesi, Her Zaman Katıl'a eşdeğer olan aynı davranışa sahiptir.

Varsayılan değer: ""

Dönüşler

()

PGSIsEnabled

Oyunda PGS Fiziği çözücü etkinleştirilmişse true döndürür.

Scriptler tarafından erişilemeyen As Workspace.PGSPhysicsSolverEnabled, PGSIsEnabled işlevi geliştiricilere oyunun hangi fiziği kullandığını söylemesine izin verir.


Dönüşler

PGS çözücü etkinleştirilmişse doğrudur.

UnjoinFromOutsiders

()

Belirtilen BaseParts ve diğer BaseParts arasındaki tüm eklemleri kırar.

Bu işlev bir dizi gerektirir BaseParts .Not, bağlantılar bu BaseParts (birbiriyle) arasında kırılmayacak, sadece bu BaseParts ve diğer BaseParts arasında değil dizide.

Bu işlev, kullanıcı bir seçimi hareket ettirmeye başladığında Roblox Studio Hareket aracı tarafından kullanılır.Plugin:GetJoinMode() ve Workspace:JoinToOutsiders() ile birlikte, özel Studio derleme araçları geliştirirken katılma işlevini korumak için kullanılabilir.Bir örnek için aşağıdaki parçaları görün.


local Workspace = game:GetService("Workspace")
-- Finished moving a selection; make joints
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end

local Workspace = game:GetService("Workspace")
-- Started moving a selection; break joints
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end

Parametreler

objects: Instances

Katıların kırılması gereken bir dizi BaseParts kişi için.

Varsayılan değer: ""

Dönüşler

()

ZoomToExtents

()
Eklenti Güvenliği

Konumlar ve Workspace.CurrentCamera ı genişletmek için BaseParts şu anda Workspace 'de görünen çapı göstermek için pozisyonlar ve yakınlaştırmalar.

Bu işlev, şimdi kaldırılan, 'Roblox Studio'daki Zoom To Extents' düğmesinde kullanıldı.Bunun benzer davranışı 'Zoom To' (F kısayolu) özellikgösterir, ancak şu anda seçilen nesnenin yerine Workspace uzantılarını gösterir.

Bu işlev, senaryolarda kullanılamaz ancak komut çubuğunda veya eklentilerde işleyecektir.


Dönüşler

()

Etkinlikler

PersistentLoaded

Bu olay, bir oyuncunun tüm mevcut kalıcı modeller ve parçasız atomik modeller gönderildiğinde her seferinde ateşlenir.player çözümleme parametresi, hangi oyuncunun tüm geçerli örnekleri aldığını gösterir.

Deneyim yüklemenin kalıcı yüklemeden önce gerçekleştiğini ve DataModel.Loaded etkinliğinin ateşlenmesinin tüm kalıcı modellerin mevcut olduğunu göstermediğini unutmayın.

Parametreler

player: Player