‫Merhaba ve tekrar hoş geldiniz.
‫Şimdi, tank ve kule için ölümle başa çıkma becerisini zaten oluşturduk ve bunun tankımızla bazı ekstra adımlar
‫içerdiğini gördük, çünkü girişi devre dışı bırakmak ve fare imlecini göstermeyi devre dışı bırakmak için oyuncu
‫denetleyicisine eriştik.
‫Şimdi kendi özel oyuncu denetleyici sınıfımıza sahip olmak istiyoruz, böylece bunu bizim için halledecek
‫işlevsellik ekleyebiliriz.
‫Ve sonra bu sınıfa dayalı bir plan oluşturmak istiyoruz, böylece oyuncu denetleyicisinde fare
‫imlecini göstermeye başladığımızda hangi fare imlecinin gösterileceği gibi bazı açık değişkenlere erişebiliriz.
‫Bu yüzden bir oyuncu denetleyici sınıfı oluşturacağız ve giriş işlevini etkinleştirme ve devre dışı bırakma ekleyeceğiz.
‫Ardından bir plan oluşturacağız ve planlarda fare imleci türünü ayarlayacağız.
‫Şimdi bu sınıfı oluşturmak nasıl yapılacağını bildiğiniz bir şeydir.
‫Bu nedenle, mücadeleniz için bir oyuncu denetleyici sınıfı oluşturacak, yeni bir C++ sınıfı oluşturacak ve üst sınıf
‫olarak oyuncu denetleyicisini seçeceksiniz.
‫Bu melodiye tanklar, oyuncu kontrolörü veya buna benzer uygun bir şey deyin.
‫Ve işiniz bittiğinde, bu sınıfı temel alan bir plan oluşturun.
‫Şimdi, planı aldıktan sonra, bunu oyun modu planında varsayılan oyuncu kontrolörü olarak atayabilirsiniz.
‫Bunu oyun modunda, planın kendisinde yapın.
‫Videoyu duraklatın ve şimdi tank için oyuncu denetleyici sınıfını oluşturun.
‫Tamam.
‫Editörlüğe geri döndüm.
‫Yeni C++ sınıfına sağ tıklayıp aşağı kaydıracağım ve burada oyuncu denetleyicisinin bir seçenek olduğunu
‫göreceğim.
‫Bu yüzden oyuncu denetleyicisini seçeceğim ve yeni oyuncu denetleyicime tune tanks adını vereceğim.
‫Player, controller ve click create sınıfı.
‫Ve işte yeni oyuncu denetleyici sınıfım.
‫Şimdi bir sonraki adım, buna dayalı bir plan oluşturmaktır.
‫Düzenleyiciye geri döndüm ve size bunu yapmanızı söylemedim, ancak burada blueprints klasörümde Player
‫Controller adında yeni bir klasör oluşturacağım.
‫Aynı klasör yapısını istiyorsanız, henüz yapmadıysanız şimdi bu klasörü oluşturabilir ve ardından
‫oyuncu denetleyicisi planınızı bunun içine taşıyabilirsiniz.
‫Bir planı bir klasörden diğerine nasıl taşıyacağınızı bilmiyorsanız, bu oldukça basittir.
‫Planı içeren klasöre gidin, tıklayın ve doğru klasöre sürükleyin ve buraya taşı'ya
‫tıklayın.
‫Şimdi, mermimi bu klasöre taşımak istemiyorum, bu yüzden bu eylemi iptal etmek için içerik tarayıcısında
‫buraya tıklayacağım.
‫Artık bir oyuncu denetleyicisi klasörüm var.
‫Sağ tıklayıp Blueprint Class'a tıklayacağım ve bu aramada toon tanks, player controller'ı arayacağım
‫ve bu sınıfı seçip Select'e tıklayacağım.
‫Şimdi bu bip alt çizgi toon tankları oyuncu denetleyicisini çağırabilirim.
‫Artık bir oyuncu kumandam var.
‫Şimdi bunu varsayılan oyuncu kontrolörü olarak ayarlamam gerekiyor.
‫Bu yüzden oyun modu klasörüne gideceğim, bip sesini açacağım, tankları ayarlayacağım, oyun modunu açacağım ve tam planı açacağım.
‫Editör Ve burada oyuncu denetleyici sınıfını görüyorum.
‫Açılır menüye tıklayacağım ve BP tune tanks, player controller'ı seçeceğim ve derleyip kaydedip
‫kapatacağım.
‫Artık özel oyuncu denetleyici sınıfımız var.
‫Buna bazı işlevler eklemeye hazırız.
‫Yani burada istediğim şey, oyuncunun tankı hareket ettirecek girdi eklemek için etkin olup olmadığını,
‫oyuncunun etkin durumunu ayarlayabilen bir işlevdir.
‫Şimdi oyuncu öldüğünde bunu oyun modundan çağırmayı planlıyorum.
‫Bu yüzden burada herkese açık bir bölüm oluşturacağım ve işlev geçersiz olacak.
‫B player enabled adında bir boolean alabilen bu set player enabled durumuna basitçe set player enabled diyeceğim.
‫Bu şekilde, bu fonksiyonu çağırdığımızda, oynatıcının etkinleştirilmesini istiyorsak true, devre dışı
‫bırakılmasını istiyorsak false değerini girebiliriz.
‫Öyleyse bu işlevi tune tanklarında, oyuncuda, denetleyicide uygulayalım.
‫CP İşte benim fonksiyonum ve tabii ki burada sınıf adına ihtiyacım var.
‫Yani bir ayar tankı, oyuncu, kontrolör ve bir de kapsam çözümleme operatörü olacak.
‫Şimdi, bu işlev oldukça basit olacak.
‫B player enabled değerini kontrol edecek ve bunu basit bir if kontrolü ile yapabiliriz.
‫Diyeceğim o ki, eğer B oyuncusu etkinse ve ben piyona erişmek ve girişi etkinleştirmek ya da devre dışı bırakmak istiyorum
‫ve bu oyuncu kontrolörünün sahip olduğu piyona erişmenin yolu get pawn fonksiyonunu kullanmaktır.
‫Bu, bir piyon döndürür ve piyon sınıfının işlevi vardır.
‫Girişi etkinleştir ve gördüğümüz gibi girişi etkinleştir bir oyuncu denetleyicisi gerektirir, böylece bunu geçebiliriz.
‫Şimdi kırmızı dalgalı çizgiler alıyorum çünkü bu piyon sınıfı türünü dahil etmemiz gerekiyor
‫ve piyon için unreal engine belgelerine giderek piyonun dahil edilme şeklini kolayca görebiliriz
‫ya da bir piyondan miras alan temel piyon sınıfımıza gidebiliriz.
‫Ve bir piyondan miras aldığı için, piyon başlığını oraya dahil etmesi gerektiğini gördük, böylece bunu
‫oyun çerçevesi olan eğik çizgi piyonuna kopyalayabilirim.
‫Tank oyuncu kumandasına geri dönelim.
‫Bu kırmızı dalgalı çizgilerden kurtulmak için buraya yapıştırabilirim.
‫Dolayısıyla bu, B oyuncusunun etkin olduğu durumla ilgilenir, ancak burada bir LS durumuna da ihtiyacımız var.
‫LS durumunda get pawn'ı çağıracağız ve tıpkı enable input gibi girişi devre dışı bırakmak için tasarlanmış bir
‫fonksiyon var ve tahmin edebileceğiniz gibi disable input olarak adlandırılıyor.
‫Bunun için de bir oyuncu kontrolörü gerekiyor.
‫Şimdi oyuncu kontrolörünün fare imlecini göstermesi gerekiyor ve bunu da ayarlayacağız.
‫Ve bunu, oynatıcının etkinleştirilip etkinleştirilmeyeceğine göre ayarlamak istiyoruz.
‫Dolayısıyla, B oynatıcısının Boolean değeri ne olursa olsun, B fare imlecini göster'i bu değere ayarlayacağız.
‫Yani B sho fare imleci eşittir B oyuncu etkin diyeceğiz.
‫Şimdi henüz fare imlecini göstermedik.
‫O kısma geleceğiz.
‫Aslında oyunu oynarken fare imlecini görmek isteriz, böylece tankımızın nereye nişan aldığını
‫biliriz.
‫O konuya yakında geleceğiz.
‫Ancak şimdilik oyuncu kontrolöründe bu güzel fonksiyona sahibiz ve ne demek istediğimi göstermek için bu
‫fonksiyonu şimdi oyun modundan çağırmak istiyoruz.
‫Oyun moduna geri dönüyorum ve burada aktör öldü işlevi var ve girişi devre dışı bıraktığımızı ve burada b fare imlecini
‫göster ayarını yaptığımızı göreceksiniz.
‫Bu yüzden bir tane almak istiyorum.
‫fonksiyonunu çağırabiliriz, böylece bu fonksiyonu bir boolean değeri girerek çağırabiliriz.
‫Bu durumda, giriş işlevini devre dışı bırakmak için false ve fare imlecinin false olarak ayarlanması
‫için B değerlerini geçeceğiz.
‫Dolayısıyla, bir oyuncu denetleyicisi döndüren tank get player controller'ı çağırmak yerine bu işlevi burada
‫çağırabiliriz.
‫Bu oyuncu denetleyicisine erişmemizi sağlayan bir işaretçi değişkene sahip olmak istiyorum.
‫Burada tune tanks oyun modlarına özel bir değişken ekleyeceğim.
‫Bunu ileri bildireceğim ve A tipi ayar tankları, oyuncu, kontrolör olacak, bu bir işaretçi.
‫Buna Tune Tank'ın Oyuncu Kumandası adını vereceğim ve bunu Tune Tank oyun moduna ayarlayıp oyun istatistiklerini
‫kullanarak oynamaya başlayabilirim.
‫Şimdi, oyun oynama istatistiklerinin oyuncu kontrolörü alma işlevi olup olmadığını merak ediyorsanız, haklıydınız.
‫Bu, bir dünya bağlamı nesnesi ve bir oyuncu dizini gerektiren kullanışlı statik işlevlerden biridir, bu nedenle
‫devam edip oyun statikleri için include'i kopyalayabilir ve bunu Begin Play'de burada çağırabiliriz.
‫Burada en üstte görüyorum, zaten oyun istatistiklerim var, çünkü zaten burada kullanıyoruz
‫ve oyuncuyu almak için oyuna başlıyoruz --.
‫Oyuncu denetleyicisi işaretçisini ayarlamak için de aynı şeyi yapacağız.
‫Şimdi bu, nasıl yapılacağını bilmeniz gereken bir şey.
‫Öyleyse neden videoyu duraklatıp burada küçük bir mini meydan okuma yapmıyorsunuz ve sadece ayar tanklarının, oyuncu kontrolörünün
‫değerini ayarlamıyorsunuz?
‫Tamam.
‫Bu yüzden tune tanks, player, controller diyeceğiz ve bunu gameplay statics get player controller'ın
‫sonucuna eşit olarak ayarlıyoruz ve dünya bağlamı nesnesinin bu olabileceğini ve oyuncu indeksinin dokuz değil sıfır
‫olduğunu biliyoruz.
‫Ve tabii ki bunun bir oyuncu kontrolörü döndürdüğünü ve bir tune tankı oyuncu kontrolörü döndürmediğini biliyoruz.
‫Tıpkı Tank'ta yaptığımız gibi burada da oyuncu seçeceğiz.
‫Bu yüzden bir tune tanks player controller'a cast diyeceğim ve get player controller'ın sonucunu cast ediyoruz.
‫Şimdi Oyuna Başla'dan sonra, ayar tanklarına ve oyuncu kontrolörüne sahip olacağız.
‫Ve şimdi buraya gelebiliriz ve oyuncu denetleyicisini doğrudan tanktan get player controller kullanarak
‫almak yerine, tune tanks player controller değişkenimizin geçerli olduğundan emin olmak için kontrol edebiliriz ve sonra
‫yaptığımız işlevi çağırabiliriz.
‫Geri dönüp bir bakalım.
‫Buna oyuncu etkin durumunu ayarla denir ve burada oyun modunda girişi devre dışı bırakmak ve imleci göstermeyi durdurmak istiyoruz,
‫yani bunun için false değerini geçeceğiz.
‫Bu yüzden tune tanks, player, controller, set player enabled state diyeceğiz ve bunun için false değerini geçiyoruz ve tune tanks, player controller
‫kullanıyoruz, bu da tune tanks, player controller'ı dahil etmemiz gerektiği anlamına
‫geliyor.
‫Burada en üstte ayar tanklarını, oyuncu kumandasını ekleyeceğiz.
‫Ve şimdi bu tip OC'yi tanımladık.
‫Devam edelim ve bunu derleyelim.
‫Ve bunu tamamlamadan önce yapacağımız son şey, oyuncu denetleyicisi planımıza gitmek
‫ve fare arayüzü bölümüne gitmenizi istiyorum ve Varsayılan Fare İmleci yazdığını göreceksiniz.
‫Şimdi açılır menüye tıklayabiliriz ve aralarından seçim yapabileceğimiz bir dizi farklı imleç vardır.
‫Ve ben Crosshairs'i seçeceğim.
‫Şimdi, henüz fare imlecini göstermiyoruz, ancak oyuna başladığımızda imleci göstereceğiz.
‫Ve bunu yaptığımızda, fare imlecine baktığımızda her zaman gördüğümüz varsayılan beyaz ok yerine artı işareti olmasını
‫istiyorum.
‫Bu yüzden varsayılan fare imlecini artı işaretlerine ayarlayın ve fare imlecini gerçekten etkinleştirdiğimizde bu artı
‫işaretlerini görebileceğiz.
‫Özetle, özel bir oyuncu denetleyici sınıfı oluşturduk ve bu sınıfa yerleştirdiğimiz bir işlevle girişi etkinleştirmek veya
‫devre dışı bırakmak için bunu kullanıyoruz.
‫Ayrıca bu fonksiyonu, aktarılan Boolean'a bağlı olarak fare imlecini göstermek veya gizlemek için kullanıyoruz.
‫Ve oluşturduğumuz blueprint'te fare imleci türünü ayarladık ve çok yakında oyun başladığında fare imlecini
‫göstermeye başladığımızda artı işaretli fare imlecinin neye benzediğini göreceğiz.
‫Çok iyi iş çıkardın.
‫Artık bu oyuncu kontrolörüne sahibiz ve oyun işlevselliğini uygulamaya devam etmeye hazırız.
‫Bir sonraki videoda görüşürüz.