Bu özellik deneysel aşamadadır, böylece deneyebilir, geribildirimde bulunabilir ve neler planladığımızı görebilirsin. Şu anda Özel Çanta ve Eşyalar kullanan bir projeyi yayınlayamazsın.
Deneysel aşamada oluşturulan öğeler için geriye dönük uyumluluğu garanti etmediğimizi, bu özelliklere yönelik API’lerin değişebileceğini ve kendi takdirimize bağlı olarak tüm deneysel özellikleri veya belirli işlevsellikleri kaldırabileceğimizi lütfen unutma. Özellik ile çalışmaya başlamadan önce bilinen sorunlar listesine göz at.
Eşyalar ve envanter sistemleri, birçok oyun türünün kritik bir parçasıdır. Scene Graph’ın varlıklarını ve bileşenlerini kullanarak Fortnite oyuncu çantasını özelleştirebilir ve adana özel eşyalar oluşturabilirsin.
Eşyalar, bir adada bulunan oyuncuların ve aracıların kullanabileceği ve sahip olabileceği objelerdir. Çantalar, mevcut Fortnite oyuncu çantasının yanı sıra inventory_component ile oluşturduğun tüm özel çantaları içerir. Özel Çanta ve Eşyalar; eşyaları oluşturmak, kontrol etmek ve depolamak için kullanılan bir sistemdir. Bu sistem, Proje Ayarları’nda etkinleştirmen gereken deneysel bir özelliktir ve bunu UEFN ve Verse’te Scene Graph ile birlikte kullanabilirsin.
Scene Graph’ın Temel Özellikleri
Scene Graph, Verse üzerine kurulu bir varlık ve bileşen sistemidir. Varlıklar, bileşenlerin kapsayıcılarıdır ve bileşenler bir varlığa işlevsellik kazandırır. Hiyerarşiler oluşturan bir üst-alt ilişkisi içinde varlıkları birbirine ekleyebilirsin. Varlıkların ve bileşenlerin yeniden kullanılabilir düzenlemelerine prefab denir. Varlıklar ve bileşenler hakkında daha fazla bilgi için Varlıklar ve Bileşenlerle Çalışma kısmına bakabilirsin. Scene Graph’taki prefablar hakkında daha fazla bilgi için Prefablar ve Prefab Örnekleri kısmına bakabilirsin.
Bilinen Sorunlar
Özel Çanta ve Eşyalar, UEFN’de Scene Graph’tan yararlanan ilk sistemdir. Bu nedenle Deneysel sürümde bu sistemi kullanırken karşılaşabileceğin birkaç hata bulunur. Bilinen sorunların listesini burada bulabilirsin. Üzerinde çalıştığımız çok sayıda düzeltme ve iyileştirme var. Bunlar gelecekteki bir sürüme dahil edilecek.
Eşyalar
Öğe, Scene Graph’ta item_component içeren bir varlıktır. Eşyalar varsayılan olarak birleştirilebilir ve üst üste konulabilir özelliktedir, karşılaştırma ve sıralama için kategorilere ayrılabilir, kuşanılmış ve kuşanılmamış olabilir.
Özel Çanta ve Eşyalar sistemi Scene Graph kullandığından eşyaların işlevselliğini artırmak için bileşenler ekleyebilirsin. Sistem aşağıdaki tabloda listelenen birkaç temel bileşenle birlikte gelir.
| Bileşen | Açıklama |
|---|---|
| Bu bileşen, bir varlığı eşya yapar. Aynı zamanda varlığa yığın haline getirilebilme olanağı verir ve sahipliği ve kontrolü bir çantada olabilir. |
| Fortnite kullanıcı arayüzünde gösterilen eşya için bir simge depolar. |
| Eşyanın adı ve açıklaması gibi metin verilerini içerir. |
| Eşyayı oyunda temsil eden bir örgü öğesi depolar. |
| Bu bileşen, eşyanın bir Fortnite alınabilir eşyasıyla aynı şekilde ele alınmasına olanak tanır. Buna, nesneyi almak için bir etkileşim istemi, kullanıcı arayüzü ve alma/bırakma animasyonları dahildir. |
Bir eşya, her türden yalnızca bir bileşene sahip olabilir. Buna, öğeye zaten bağlı olan diğer bileşenlerden devralan bileşenler dahildir.
Dolayısıyla örneğin item_component alt öğesi olan belirli bir öğe için özel bir bileşen oluşturursan genel öğe bileşeni yerine özel öğe bileşenin gösterilir.
Eşya Modülerliği
Özel Çanta ve Eşyalar ile uygun modülerliği sunabiliriz. Bu, ek eşya işlevselliği derlemek için bileşenleri kullanabileceğin anlamına gelir. Aşağıda bir eşya varlığına eklenmiş ve işlevsellik sağlayan bileşen örnekleri verilmiştir.
Varlık
item_component: Bir varlığı eşya yapar.item_details_component: Eşyanın adı ve açıklaması gibi metin verilerini depolar.item_icon_component: Fortnite kullanıcı arayüzünde gösteirlen eşya için bir simge depolar.mesh_component: Eşyayı oyunda temsil eden bir örgü öğesi depolar.
Çantalar
Çanta, objective_component içeren bir varlıktır.
Çantalar eşya varlıkları için kapsayıcıdır ve çanta, bu eşyalara ne olacağını kontrol eder.
Özel Çanta ve Eşyalar sistemi, eşyaları bölümlere ayırmak için çantaları ve alt çantaları kullanır. Bu özellik, bir çantadaki eşyaları sıralamayı, eklemeyi ve almayı kolaylaştırır. Bir eşya aynı anda yalnızca bir çantada bulunabileceğinden, çantalar eşya varlıklarının sahipliğini de belirler.
Varsayılan olarak çantalar herhangi bir türden sonsuz sayıda eşya barındırabilir. Ancak hangi eşyaların eklenebileceğini belirleyen kısıtlamalar ve kurallar oluşturabilirsin. Bu kısıtlama ve kuralların bazı örnekleri:
Yalnızca gerekli tür sorgusunu karşılıyorsa eşyaları bir çantaya ekleme.
Bir çantadaki eşya sayısını sınırlama.
Çanta dolduğunda daha yüksek önceliğe sahip eşyaların daha düşük önceliğe sahip eşyaları çıkarmasına izin verme.
Bir çantayı tek bir eşyayla kısıtlama.
AddItem() fonksiyonu hedef çantada çözümleyemezse eşyayı barındırabilecek diğer çantaları arar. Bu fonksiyon, Scene Graph hiyerarşilerini kullanır.
Önce eşyayı eşdüzey çantalara (ilk hedef çantayla üst öğeyi paylaşan çantalar) eklemeye çalışır, sonra alt çantalara (ilk hedef çantanın alt öğesi olan çantalar) bakar. Fonksiyon, başarısız sonucunu döndürmeden önce hiyerarşideki tüm öantaları kontrol eder.
Sahne Olayları ile Çanta Filtreleme
Bir çanta, AddItem() fonksiyon çağrısı ile hedeflendiğinde bir sahne olayı (add_item_event) alır. Bir bileşenin OnReceive() fonksiyonu geçersiz kılınarak, eşyanın girişini etkilemek için özel mantık tetiklenebilir. Bunun yapılması, izin vermeden önce eşya türünün kontrol edilmesi, çantada yalnızca belirli sayıda eşyaya izin verilmesi vb. envanter kurallarının oluşturulmasına olanak tanır. OnReceive() olayı temel bileşen sınıfında uygulanır ve tüm Scene Graph bileşenleri tarafından kullanılabilir.
add_item_event, ulaştığı tüm çantalardan yanıtları toplar. Çanta bileşenlerinin olayı değiştirmesini ve bu çanta bileşenlerinin kendilerine eklenen eşyayı almayı teklif etmelerini sağlayabilirsin. Olay, inventory_with_priority adlı bir dizi içerir. Bu diziyi hedef çantanla ayarlayıp güncelleyebilirsin. Böylece hedef çantayı, eşyayı alma önceliğiyle aday gösterebilirsin. Sahne olayı yayınlandığında, ayarlanmış bir önceliğe sahip olan tüm çantaların eşyayı aldığı kabul edilir ve en yüksek önceliğe sahip çanta eşyayı alır.
Özel Çanta ve Eşyaların Deneysel sürümünde yalnızca add_item_event kullanılabilir. Ancak gelecekteki güncellemelerde başka olaylar da eklenecektir.
Fortnite Çantaları
Özel çanta ve eşyalar, fort_inventory_components adı verilen bir dizi inventory_component alt sınıfıyla birlikte gelir. Bu alt sınıflar, Fortnite Battle Royale oyuncu çantasını taklit eden eşya filtreleme ve kullanıcı arayüzü öğeleri içerir.
| Bileşen | Açıklama |
|---|---|
| Varsayılan Fortnite oyuncu çantasının Toplama Aracı yuvasına karşılık gelir. |
| Varsayılan Fortnite oyuncu çantasının kısayol çubuğuna karşılık gelir. |
| Varsayılan Fortnite oyuncu çantasının oluşturma araçları kısayol çubuğuna karşılık gelir. |
| Varsayılan Fortnite oyuncu çantasının tuzak yuvasına karşılık gelir. |
| Varsayılan Fortnite oyuncu çantasının para birimleri bölümüne karşılık gelir. |
| Varsayılan Fortnite oyuncu çantasının toplanabilirler bölümüne karşılık gelir. |
| Varsayılan Fortnite oyuncu çantasının cephane bölümüne karşılık gelir. |
Varsayılan oyuncu çantasına eklemek, kaldırmak veya değiştirmek için kendi alt çanta yapılandırmanı da oluşturabilirsin.
Eşyalar ve çantalar, eşya veya çanta varlığına eklenen bileşen sayısı kadar basit ya da karmaşıktır. Özel Çanta ve Eşyalar sistemi geliştirilmeye devam ettikçe daha da fazla işlevsellik sağlayan daha fazla bileşen eklenecektir.