Veri modeli

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

Her yer bir veri modeli tarafından temsil edilir, yer hakkında her şeyi tanımlayan nesnelerin bir hiyerarşisi.Veri modeli, parçalar, arazi, aydınlatma ve diğer çevresel unsurlar gibi 3B dünyayı oluşturan tüm nesneleri içerir.Ayrıca özellikleri değiştiren senaryolar, çağrı yöntemleri ve işlevler ve dinamik davranış ve etkileşim sağlayan olaylara yanıt veren fonksiyonlar gibi çalışma davranışını kontrol edebilecek nesneler de içerir.

Roblox Motoru, bir dünyadurumu için gerçeklik modelini bir kaynak olarak kullanır, böylece onu istemci cihazlarda simüle edebilir ve görüntüleyebilir.Roblox Motorunun veri modelini nasıl yorumladığına dair daha fazla bilgi için İstemci-Sunucu Çalışma Süresi bakın.

Nesneler

Roblox'ta bir yeri tanımlamak için veri modeline nesneler yerleştirin ve düzenleyin.Roblox'taki her nesne, herkese ortak genel nitelikli özellikler, yöntemler ve olaylar tanımlayan Instance sınıfından miras alır, ki bunlar tüm nesneler için ortaktır.Nesneler ayrıca, nesnenin sağladığı işlevlere bağlı olarak kendi özelliklerini tanımlarlar.Çok çeşitli kullanımlara sahip birçok nesne kategorisi var, ancak sıklıkla BasePart ve LuaSourceContainer nesneleriyle çalışacaksınız, genellikle parça ve senaryolar olarak adlandırılır.

Roblox Motorunun tüm özelliklerinin geniş bir listesi için, referans dokümanına bakın.

3B inşaat blokları

BasePart dünyadaki fiziksel olarak simüle edilmiş 3B yapı blokları için temel sınıftır.Konum, boyut ve yön gibi özelliklere sahip tüm fiziksel nesneler için ortak özellikleri ve yöntemleri tanımlar.

NesneAçıklama
PartBir blok, top, silindir, kama veya köşe kama şeklini alabilen basit bir parça.
MeshPartMaya veya Blender gibi 3B modelleme yazılımından ithal edilmiş bir örgü.
TrussPartKarakterlerin bir merdiven gibi tırmanabileceği bir kiriş kolonu.

Teorik olarak, sadece basit parçalar kullanarak tamamen işlevsel bir Roblox deneyimi oluşturabilirsiniz, ancak çoğu olasılıkla mesheleri itherecek ve temel parçaları daha karmaşık nesneler ve yapılar aracılığıyla katı modellendirme ile birleştireceksiniz.

Senaryolar

Yerinizin 3B dünyasına etkileşim ve davranış ekleyebilir ve mantığı senaryolarla tanımlayabilirsiniz.Luau programlama diliinde hareket eden parçalar, diğer senaryolara yönlendirme ve olaylara yanıt vermek gibi şeyler yapmak için senaryolar yazarsınız.Roblox bir istemci-sunucu modelinde çalıştığından, sunucuda, istemci üzerinde veya ağ sınırı üzerinden yazılımları iletişim kurabilirsiniz.

  • Bir Script nesnesi, yalnızca sunucuda çalışabilen bir senaryoyu temsil eder.
  • Bir LocalScript nesnesi yalnızca istemci üzerinde çalışabilen bir senaryoyu temsil eder.
  • Bir nesnesi, sunucu ve istemci kodundan her ikisinden de yeniden kullanılabilir bir senaryo temsil eder.

Kodların doğru davranması için, onları veri modelinde doğru konteynerlere yerleştirmelisiniz.Daha fazla bilgi için Sunucu ve İstemci bölümlerine bakın.

Nesne organizasyonu

Veri modelinizi nasıl organize edeceğiniz konusunda çok fazla esnekliğiniz olsa da, Roblox Motoru belirli nesnelerin belirli konteyner hizmetlerinde bulunmasını bekler, ki bu nesnelerin belirli davranışları vardır ve içerdikleri nesnelerin davranışlarını etkileyebilir.Konteyner hizmetlerinin ana kategorileri şunları içerir:

Ek olarak, nesnelerinizi aşağıdaki nesnelerle daha da organize edebilirsiniz:

  • Klasörler - A Folder organizasyonel amaçlıdır ve herhangi bir davranış tanımlamaz.Örneğin, klasörleri kullanarak sunucu depolamasında bir dizi kod gibi benzer nesneleri gruplandırabilirsiniz.
  • Modeller - A Model öncelikle bir masa setini içeren bir sandalye, masa ve bir lamba dahil geometrik gruplamalar için tasarlanmıştır.Daha karmaşık setleri düzenlemek için, modeller içinde modelleri bile yerleştirebilirsiniz.

Çalışma Alanı

Workspace bir yerin 3B dünyasını oluşturan tüm nesneleri içerir.Uzayı özelleştirmek için 3B dünyanıza temel parçalar, örüntü parçaları ve modeller gibi nesneler ekleyebilirsiniz.Müşteriler bu kutunun içinde görünen her şeyi ve dışındaki hiçbir şeyi renderlar ve kullanıcıların yerinizde ne gördüğünü ve etkileşime girdiğini kontrol edebilirsiniz.Aslında gerçekleştirilmese de, ilişkili oldukları parçalara ve modellere eşlik eden kodları da ekleyebilirsiniz.Varsayılan olarak, çalışma alanı bir Terrain ve Camera nesnesiyle önceden doldurulur.

Kamerası

Camera müşterinin 3D dünyayı nasıl gördüğünü belirler.Varsayılan olarak, çalışma alanında bir kamera bulunur, ancak farklı perspektifler ve görüşler oluşturmak için çok sayıda kamera nesnesi ekleyebilirsiniz.Her istemci bu ayarları alır ve sunucunun doğrudan değiştiremeyeceği kendi kamerası görüşünü oluşturur.

Örneğin, bir kamera kullanıcı hareketlerini takip etmek veya belirli bir konumda sabit kalmak için ayarlayabilirsiniz.Ayrıca görüş alanını, mesafeyi ve açıyı ayarlayarak kullanıcıların 3D dünyanızı nasıl gördüğüne dair farklı görsel efektler oluşturabilirsiniz.

Daha fazla bilgi için, Kamerayı özelleştirin bakın.

Bölge

Terrain yeriniz için manzaralar oluşturmanıza izin verir.Terene bir malzeme uygulayarak, çim, su, kum veya özel bir malzeme gibi istenen doğal çevreleri simüle edebilirsiniz.3B dünyanız için yalnızca bir arazi nesnesine sahip olabilir ve bu araziye bir malzeme uygulayabilirsiniz, ancak arazinizin bölgelerini düzenlemek için Arazi Editörü kullanabilirsiniz.

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

Çevre

Işıklandırma ve ses efektleri, 3B dünyanızı çok daha sürükleyici ve gerçekçi hale getirebilir.Bu efektleri yerinize eklemek gerekli olmasa da, daha görsel ve akustik olarak çekici hale getirebilirler.

Yıldırım

Lighting içinde, yerinizin küresel aydınlatma ayarlarını kontrol eden nesneler bulunur, örneğin atmosferik etkileri simüle etmek için Atmosphere veya çevrenizdeki güneş, ay ve yıldızları değiştirmek için Sky gibi.

Daha fazla bilgi için, Aydınlatma bakın.

Ses

SoundService çocuk Sound nesnelerinin arka plan müzik veya çevresel ses efektleri için ses düzeyi ve çalma ayarlarını kontrol edebilir.

Daha fazla bilgi için, Ses bakın.

Replikasyon

Replikasyon sunucunun tüm bağlı müşterilerle yerinizin durumunu senkronize etme sürecidir.Roblox Motoru, çok sayıda durumda sunucu ve istemci arasındaki verileri, fiziği ve sohbet mesajlarını akıllıca ve otomatik olarak yeniden yapar, ancak belirli nesneleri belirli konтей器lere yerleştirerek yeniden yapmak için de belirleyebilirsiniz.

ReplicatedFirst

ReplicatedFirst yerinize katıldığında bir müşteriye yeniden yansıtmak istediğiniz nesneleri içerir.Genellikle bir oyuncuyu başlatmak için gerekli nesneleri içerir, örneğin istemci tarafı LocalScript nesneleri ve senaryolarla ilişkili nesneler.Bu kutudaki tüm içerikler yalnızca bir kez sunucudan istemciye yansıtılır.

Yeniden Yapılan Depolama

ReplicatedStorage sunucuya ve bağlantılı istemcilere her ikisine de mevcut olan nesneler içerir.Client'te meydana gelen herhangi bir değişiklik kalıcı olur ancak sunucuya yeniden yazılmaz.Sunucu, tutarlılığı korumak için istemci üzerindeki değişiklikleri üzerwrite edebilir.Bu konteyner genellikle paylaşılması ve her ikisi tarafından da erişilmesi gereken ModuleScript nesneler için kullanılır Script (sunucu tarafı) ve LocalScript (müşteri tarafı) nesneler.Ayrıca, bu konteyneri kullanarak, gerekli olana kadar 3B dünyada var olmak zorunda olmayan herhangi bir nesneyi yeniden yapabilirsiniz, örneğin tüm gelen karakter modellerine klonlanma ve ebeveynlik için bir ParticleEmitter .

Replikasyonun nasıl çalıştığına dair daha fazla bilgi için, İstemci-sunucu çalışma zamanı bakın.

Sunucu

Veri modeli, istemciye asla yansıtılmayan yalnızca sunucu tarafı nesneler için özel konteynerler tanımlar.Bu, sunucunun sunucunun nesnelerini ve mantığını istemciye açmadan istemci davranışını ve durumunu etkilemesine izin verir.

Sunucu Kript Hizmeti

içerir nesneler, sunucu kriptleri tarafından gerekli olan nesneler ve sunucu kullanımına yönelik diğer kriptleme ile ilgili nesneler.Senaryolarınız başka, senaryo dışı nesneler gerektiriyorsa, bunları ServerStorage içine yerleştirmeniz gerekir.Bu konteynerdeki kodlar asla müşterilere yansıtılmaz, bu da güvenli, sunucu tarafı mantığa sahip olmanızı sağlar.

Sunucu Depolama

ServerStorage sadece sunucu kullanımı için tasarlanmış nesneler içerir.Bu konteyneri, çalışma alanına veya diğer konteynerlere çalışma sırasında klonlanmak ve ebeveyn olmak istediğiniz nesneleri depolamak için kullanabilirsiniz.Örneğin, haritalar gibi büyük nesneleri bu kapsayıcıya saklayabilir ve sadece gerektiğinde çalışma alanına taşıyabilirsiniz Bu, başlangıçta katılımda istemci ağ trafiğini azaltmanıza izin verir.

Müşteri

Müşteri kutu hizmetleri, her bağlı müşteriye yeniden yansıtılan nesneler için tasarlanmıştır.Bu konteyner kategorisi her bağlı müşteriye yinelenir ve genellikle 3B nesneler ve ilişkili LocalScript nesneler içerir.Bu konteynerlere sakladığınız tüm nesneler, seanslar arasında kalıcı olmayacak ve bir istemci yeniden katıldığında her seferinde sıfırlanacaktır.Oyuncu GUI'leri, istemci tarafı kodları ve sadece istemciye ilgili diğer nesneler gibi nesneleri bu konteynerlere yerleştirebilirsiniz.

Bir istemci bir sunucuya bağlandığında, Players konteyner hizmeti yerinize katılan kullanıcıları dinler ve her bir istemci için bir Player nesne oluşturur.Sunucu, nesneleri düzenleme veri modelinden istemci konteynerlerinden yerleşik çalışma süresi veri modeline kopyalar ve Players nesnesinin içindeki karşılık gelen konuma.Aşağıdaki tablo, konteynerde bulunduğu orijinal konteyneri ve sonuçta müşteriye kopyalanan sonraki konteyneri tanımlar:

Veri modelini düzenleİşletim veri modeliNotlar
StarterPackOyuncu.Sırt Çantasıoyuncuenvanterini ayarlayan ve genellikle Tool nesne içeren kodlar, ancak genellikle yerel kodlar da içerir.
StarterGuiOyuncu.OyuncuGuiOyuncunun yerel GUI'sini yönetebilen kodlar.Bir oyuncu yeniden doğduğunda, PlayerGui'nin içeriği boşaltılır.Sunucu, StarterGui içindeki nesneleri OyuncuGui'ye kopyalar.
StarterPlayerScriptsOyuncu.PlayerScriptleriMüşteri için genel amaçlı kodlar.Örneğin, belirli koşullar karşılandığında istemciye özel efektler oluşturmak istiyorsanız, bunu yapmak için bu konteynere yerel bir senaryo yerleştirebilirsiniz.Sunucu bu konteynere erişemez.
StarterCharacterScriptsOyuncu.KarakterOluştuğunda müşteriye kopyalanan senaryolar. Bu senaryolar oyuncu yeniden doğduğunda kalıcı olmaz.
ReplicatedFirstBu konteynerin içeriği önce her şeyden önce tüm istemcilere yansıtılır (ancak sunucuya geri dönülmez).

Sohbet

Metin Sohbet Hizmeti

TextChatService çeşitli deneyim içi metin sohbet görevlerini yöneten hizmeti temsil eder, mesajları dekore etmek, metni filtrelemek, komutlar oluşturmak ve özel sohbet arayüzleri geliştirmek gibi.

Daha fazla bilgi için, Deneyim içi metin sohbet sistemi görün.

Sesli Sohbet Hizmeti

VoiceChatService diğer kullanıcılara ne kadar yakın olduğunuza dayalı gerçekçi iletişimi simüle eden yakınlık tabanlı ses sohbet özelliğini temsil eder.Bu hizmeti kullanarak özelliği açıp kapatabilirsiniz.

Daha fazla bilgi için, Ses sohbeti bakın.

Dizinler ve modeller

Veri modelinde nesneleri gruplandırmak için iki temel yöntem vardır: klasörler ve modeller .Her ikisi de nesneler için konteynerlerdir, ancak farklı amaçlara sahiplerdir.

  • Dizinler bir çevrebölümlerini depolamak için en iyisidir, örneğin lobi veya bir savaş arenası.
  • Modeller bir masa, sandalye, lamba içeren bir masa seti gibi nesne grupları için kullanılır.Daha karmaşık setleri düzenlemek için, modellerin içine yerleştirin modeller.

Nesnelerinizi daima tanımlayıcı şekilde adlandırmanız gerekir. Bu, gerekirse daha sonra nesneleri bulmak ve değiştirmek kolaylaştırır.

The Explorer window with a demonstration of a folder organization structure.
Nesneler organize edildi Folders
The Explorer window with a demonstration of a model organization structure in several services.
Çeşitli "harita" modelleri, Workspace ve ServerStorage arasında değiştirilebilir