Üst Öğe: learn-game-mechanics-in-unreal-editor-for-fortnite Type: tutorial Order: tags: kodlar Tags: verse Hero-image: disappear-loop-hero.png Topic-image: disappear-loop-topic.png Social-image: disappear-loop-social.png
Periyodik olarak belirip kaybolan platformlar, engelli parkurlar gibi platformlu oyun modlarının başlıca unsurları arasındadır. Oyuncuların bir sonraki platforma geçmek için atlayışlarını zamanlamalarını gerektirir. Iskalarlarsa düşerler ve baştan başlamak zorunda kalırlar.
Bu eğitimi takip ederek, Fortnite İçin Unreal Editor (UEFN) içinde Verse’ü kullanarak bir döngüde belirip kaybolan bir platform oluşturmayı öğreneceksin. Tam kod, referans olması için bu eğitimin sonuna eklenmiştir.

Kullanılan Verse Dili Özellikleri
loop
: Platform, oyun bitene kadar görünürlük ve görünmezlik arasında gidip gelir. Bu örnekte bu davranışı sürekli olarak çalıştırmak için Verseloop
ifadesi kullanılmıştır.
Kullanılan Verse API’ları
-
Sleep()
:Sleep()
fonksiyonu ile platformun görünmezlik ve görünürlük durumlarında ne kadar süre kalacağını seçebilirsin. -
Düzenlenebilir Özellikler: Editörde özelleştirebilmen için UEFN'e iki cihaz özelliği eklenmiştir: platform için bir
creative_prop
referansı veSleep()
fonksiyon çağrısı için birToggleDelay
.
Bölümü Ayarlama
Bu eğitimde başlangıç noktası olarak Verse Başlangıç Şablonu kullanılmaktadır. Başlamak için Verse Cihazı özellik örneğinden yeni bir proje oluştur.

Bu örnekte aşağıdaki nesne ve cihazlar kullanılır:
-
1 adet Oyuncu Doğma Karesi cihazı: Bu cihaz, oyuncunun oyun başladığında nerede doğacağını belirler.
-
3 x Kreatif Nesne: Kreatif nesneler, platformun görünürlüğünü ve çarpışmasını değiştirmek için
Hide()
veShow()
gibi Verse ile çağırabileceğin çeşitli davranışlara sahiptir. Bu eğitimde oyuncu etkileşimli platform olarak Airborne Hoverplatform A kullanılmaktadır. Bunu deneyiminin ihtiyaçlarına göre değiştirebilirsin.
Bölümünü ayarlamak için şu adımları izle:
-
Sahnene bir adet Airborne Hoverplatform A sürükle. Zeminin üzerine yerleştir, böylece oyuncu kaybolan platformdan zamanında atlamazsa düşecektir. Anahat Düzenleyici’de platformu LoopingDisappearingPlatform olarak adlandır.
-
Platformu iki kez kopyala ve ilk platformun karşı taraflarına yerleştir, böylece oyuncunun atlayışını zamanlaması gerekecektir. Oyuncu, karşı tarafa geçmek için zar zor yetecek zamana sahip olmalıdır.
-
Oyuncu Doğma Karesini platformlardan birinin üzerine getir. Burası oyun başladığında oyuncunun doğacağı yerdir. Bölüm kurulumun şu şekilde görünmelidir:
Verse Cihazını Oluşturma
Bu örnekte platform görünürlüğünü değiştiren davranışı tanımlamak için bir Verse ile oluşturulmuş cihaz kullanılır. Verse cihazını oluşturmak ve bölüme yerleştirmek için şu adımları izle.
-
Verse Gezgini’ni kullanarak yeni bir Verse cihazı oluştur ve looping_disappearing_platform olarak adlandır. İzlenecek adımlar için Verse Kullanarak Kendi Cihazını Oluşturma bölümüne bakabilirsin.
-
looping_disappearing_platform cihazını İçerik Tarayıcısı’ndan bölümüne sürükle. İzlenecek adımlar için Verse Kullanarak Kendi Cihazını Oluşturma bölümüne bakabilirsin.
UEFN’de Cihaz Özelliklerini Düzenleme
Bu bölümde, editörde özelleştirebilmek için iki cihaz özelliğini UEFN'e nasıl açacağın gösteriliyor:
-
Bölüme yerleştirdiğin kreatif nesneye yönelik bir
creative_prop
referansı. -
Platformun ne kadar süreyle görünmez / görünür olması gerektiğini depolayacak
ToggleDelay
adlı bir kayan sabit.
Önceki kısımda oluşturduğun looping_disappearing_platform cihazından bu özellikleri editörde göstermek için aşağıdaki adımları izle.
-
Verse Gezgini’ni açıp looping_disappearing_platform.verse’e çift tıkla; kod Visual Studio Code’da açılır.
-
Aşağıdaki alanları
looping_disappearing_platform
sınıf tanımına ekle:-
ToggleDelay
adlı bir düzenlenebilirfloat
. Bu, görünür ve görünmez geçişi arasındaki süreyi temsil eder. Bu değeri2.0
veya iki saniye olarak başlat.# Platformun görünürlüğünü değiştirmeden önce beklenmesi gereken süre. @editable ToggleDelay : float = 2.0
-
DisappearingPlatform
adlı bir düzenlenebilircreative_prop
. Bu, periyodik olarak kaybolup görünecek olan bölüm içi platformu temsil eder. Yazdığın kod henüz bölümde bu objeye bir referans içermediğinden, bunu boş bir arketipcreative_prop{}
ile örneklendirirsin. Bu referansı daha sonra kayan platformuna atayabilirsin.# Bölümdeki platforma referans. @editable DisappearingPlatform:creative_prop = creative_prop{}
-
-
looping_disappearing_platform
sınıf alanların şimdi şöyle görünmelidir:using { /Fortnite.com/Devices } using { /Verse.org/Simulation } using { /UnrealEngine.com/Temporary/Diagnostics } # Verse cihazı oluşturma hakkında bilgi edinmek için bkz. https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-verse. # Bir bölüme yerleştirilebilen, Verse ile yazılmış bir Kreatif cihazı looping_disappearing_platform := class(creative_device): # Platformun görünürlüğünü değiştirmeden önce beklenmesi gereken süre. @editable ToggleDelay : float = 2.0 # Bölümdeki platforma referans. @editable DisappearingPlatform:creative_prop = creative_prop{}
Kodlardan editöre
ToggleDelay
gibi değerleri göstermek için@editable
özniteliğini kullanmak yararlıdır. Bu, her seferinde Verse kodunu yeniden oluşturmak zorunda kalmadan UEFN'deki değerlerini özelleştirmeni sağlar, böylece hızlı bir şekilde yineleyebilir ve oyun deneyimine uyan değerleri bulabilirsin. -
Kodu Visual Studio Code’a kaydet ve bölümdeki looping_disappearing_platform cihazını güncellemek için kodunu derle.
-
UEFN’deki Anahat Düzenleyici panelinde, cihazın Ayrıntılar panelini açmak için looping_disappearing_platform cihazını seç.
-
Ayrıntılar panelinde Döngülü Kaybolan Platform altında:
Obje seçiciye tıklayarak ve görünüm penceresindeki Kreatif Nesneyi seçerek veya arama çubuğunda LoopingDisappearingPlatform öğesini arayarak DisappearingPlatform öğesini LoopingDisappearingPlatform (bölüme eklediğin kreatif nesne) olarak ayarla.
- ToggleDelay değerini platformun görünür / görünmez olmasını istediğin saniye değerine ayarla. Bu değer, daha önce tanımladığın değer olduğu için varsayılan olarak 2.0'dir.
Platformu Gizleme ve Gösterme
Artık bölümü ve cihazları ayarladığına göre, platformu göstermek ve gizlemek için mantık ekleyebilirsin. Bu davranışı looping_disappearing_platform cihazına eklemek için aşağıdaki adımları izle:
-
creative_prop
sınıfının görünürlüğünü açıp kapatmak için iki metot vardır:Hide()
veShow()
. Visual Studio Code'a geri dönerekOnBegin()
içindeHide()
ve ardındanDisappearingPlatform
daShow()
komutunu çağır.# Cihaz, çalışmakta olan bir oyunda başlatıldığında çalışır OnBegin<override>()<suspends>:void= # Platformu görünmez yap. DisappearingPlatform.Hide() # Platformu görünür yap. DisappearingPlatform.Show()
Bu kodu çalıştırdığında,
Hide()
veShow()
çağrıları birbirinin hemen ardından gerçekleştiği için platformun kaybolup yeniden belirdiği görülmez. -
Platformun görünür / görünmez durumlarında daha uzun süre kalması için
Sleep()
fonksiyonunu kullanarakHide()
veShow()
çağrısından önce bir gecikme eklemelisin.Sleep()
fonksiyonu bir yordamın yürütülmesini askıya alır, burada fonksiyona birfloat
bağımsız değişkeni ileterek yürütmenin askıya alınacağı süreyi (saniye olarak) belirtebilirsin. HerHide()
veShow()
çağrısından önceSleep()
çağrısı yap ve daha önce tanımladığınToggleDelay
değerini geçir.# Cihaz, çalışmakta olan bir oyunda başlatıldığında çalışır OnBegin<override>()<suspends>:void= # ToggleDelay saniyelerini bekle. Sleep(ToggleDelay) # Platformu görünmez yap. DisappearingPlatform.Hide() # ToggleDelay saniyelerini bekle. Sleep(ToggleDelay) # Platformu görünür yap. DisappearingPlatform.Show()
Bu kodu çalıştırdığında platform iki saniye süreyle (
ToggleDelay
tarafından tanımlanan süre) görünmez olacak, ardından oyunun geri kalanı boyunca görünür olacaktır.Sleep()
fonksiyonu sadece bir asenkron bağlamda çağrılabilir.OnBegin()
metodu,suspends
belirleyicisine sahip olduğu için zaten bir asenkron bağlam olduğundan, başka bir şey yapmana gerek yoktur.suspends
belirleyicisi hakkında daha fazla bilgi edinmek için Belirleyiciler ve Öznitelikler sayfasına bakabilirsin. -
Platformun oyun boyunca görünürlük ve görünmezlik arasında geçiş yapmasını sağlamak amacıyla
loop
ifadesini kullanabilirsin.loop
kullanımı, kod birbreak
ile kesintiye uğramadığı sürece,loop
ifadesi içindeki kodu tekrar tekrar çalıştırır. Bu örnekte, platformun görünürlüğünü oyun devam ettiği sürece değiştirmek istiyorsun, bu nedenleloop
’tan çıkmak için birbreak
ifadesi eklemene gerek yok.OnBegin()
’in başına birloop
ifadesi ekle ve kodun geri kalanını döngünün içinde olacak şekilde girintile (tab ile kaydır).OnBegin()
metotun şu şekilde görünmelidir:# Cihaz, çalışmakta olan bir oyunda başlatıldığında çalışır OnBegin<override>()<suspends>:void= loop: # ToggleDelay saniyelerini bekle. Sleep(ToggleDelay) # Platformu görünmez yap. DisappearingPlatform.Hide() # ToggleDelay saniyelerini bekle. Sleep(ToggleDelay) # Platformu görünür yap. DisappearingPlatform.Show()
-
Kodu kaydet ve Verse'e tıklayıp ardından kodu derlemek için Verse Kodu Oluştur'a tıkla.
-
Bölümün oynanış testini yapmak için UEFN araç çubuğunda Oturumu Başlata tıkla.
Bölümünün oynanış testini yaptığında, platformun oyun devam ettiği sürece iki saniyede bir belirip kaybolmalıdır.

Tam Kod
Aşağıda, bir platformun döngü içerisinde kaybolup görünmesini sağlayacak tam kod verilmektedir.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# Verse cihazı oluşturma hakkında bilgi edinmek için bkz. https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-verse.
# Bir bölüme yerleştirilebilen, Verse ile yazılmış bir Kreatif cihazı
looping_disappearing_platform := class(creative_device):
# Platformun görünürlüğünü değiştirmeden önce beklenmesi gereken süre.
@editable
ToggleDelay : float = 2.0
# Bölümdeki platforma referans.
@editable
DisappearingPlatform:creative_prop = creative_prop{}
# Cihaz, çalışmakta olan bir oyunda başlatıldığında çalışır
OnBegin<override>()<suspends>:void=
loop:
# ToggleDelay saniyelerini bekle.
Sleep(ToggleDelay)
# Platformu görünmez yap.
DisappearingPlatform.Hide()
# ToggleDelay saniyelerini bekle.
Sleep(ToggleDelay)
# Platformu görünür yap.
DisappearingPlatform.Show()
Kendi Kendine Yapabileceklerin
Bu eğitimi tamamlayarak, bir platformun görünürlüğünü oyun devam ettiği sürece değiştiren bir cihazı Verse kullanarak nasıl oluşturacağını öğrendin.
Öğrendiklerini kullanarak aşağıdaki işlemleri yapmaya çalış:
-
Kurulumu looping_disappearing_platform cihazı ve nesne ile çoğaltarak daha uzun bir platform serisi oluşturmak için farklı
ToggleDelay
zamanlamaları dene. -
Aynı konseptleri Nesne Yürütücü Cihazı gibi diğer objelerdeki fonksiyonları periyodik olarak çağırmak için de uygula.