﻿1
00:00:04,420 --> 00:00:06,220
‫Merhaba ve tekrar hoş geldiniz.

2
00:00:06,250 --> 00:00:13,210
‫Şimdi, tank ve kule için ölümle başa çıkma becerisini zaten oluşturduk ve bunun tankımızla bazı ekstra adımlar

3
00:00:13,210 --> 00:00:20,200
‫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

4
00:00:20,200 --> 00:00:22,120
‫denetleyicisine eriştik.

5
00:00:22,150 --> 00:00:28,270
‫Şimdi kendi özel oyuncu denetleyici sınıfımıza sahip olmak istiyoruz, böylece bunu bizim için halledecek

6
00:00:28,300 --> 00:00:30,210
‫işlevsellik ekleyebiliriz.

7
00:00:30,220 --> 00:00:36,010
‫Ve sonra bu sınıfa dayalı bir plan oluşturmak istiyoruz, böylece oyuncu denetleyicisinde fare

8
00:00:36,010 --> 00:00:43,630
‫imlecini göstermeye başladığımızda hangi fare imlecinin gösterileceği gibi bazı açık değişkenlere erişebiliriz.

9
00:00:43,660 --> 00:00:50,020
‫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.

10
00:00:50,020 --> 00:00:54,490
‫Ardından bir plan oluşturacağız ve planlarda fare imleci türünü ayarlayacağız.

11
00:00:54,520 --> 00:00:58,030
‫Şimdi bu sınıfı oluşturmak nasıl yapılacağını bildiğiniz bir şeydir.

12
00:00:58,030 --> 00:01:04,480
‫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

13
00:01:04,480 --> 00:01:07,300
‫olarak oyuncu denetleyicisini seçeceksiniz.

14
00:01:07,300 --> 00:01:11,800
‫Bu melodiye tanklar, oyuncu kontrolörü veya buna benzer uygun bir şey deyin.

15
00:01:11,800 --> 00:01:15,760
‫Ve işiniz bittiğinde, bu sınıfı temel alan bir plan oluşturun.

16
00:01:15,760 --> 00:01:22,330
‫Şimdi, planı aldıktan sonra, bunu oyun modu planında varsayılan oyuncu kontrolörü olarak atayabilirsiniz.

17
00:01:22,360 --> 00:01:25,180
‫Bunu oyun modunda, planın kendisinde yapın.

18
00:01:25,360 --> 00:01:30,280
‫Videoyu duraklatın ve şimdi tank için oyuncu denetleyici sınıfını oluşturun.

19
00:01:33,230 --> 00:01:33,680
‫Tamam.

20
00:01:33,680 --> 00:01:34,790
‫Editörlüğe geri döndüm.

21
00:01:34,790 --> 00:01:41,210
‫Yeni C++ sınıfına sağ tıklayıp aşağı kaydıracağım ve burada oyuncu denetleyicisinin bir seçenek olduğunu

22
00:01:41,210 --> 00:01:42,170
‫göreceğim.

23
00:01:42,170 --> 00:01:48,320
‫Bu yüzden oyuncu denetleyicisini seçeceğim ve yeni oyuncu denetleyicime tune tanks adını vereceğim.

24
00:01:49,110 --> 00:01:53,190
‫Player, controller ve click create sınıfı.

25
00:01:53,190 --> 00:01:56,790
‫Ve işte yeni oyuncu denetleyici sınıfım.

26
00:01:56,820 --> 00:02:00,030
‫Şimdi bir sonraki adım, buna dayalı bir plan oluşturmaktır.

27
00:02:00,030 --> 00:02:06,060
‫Düzenleyiciye geri döndüm ve size bunu yapmanızı söylemedim, ancak burada blueprints klasörümde Player

28
00:02:06,060 --> 00:02:09,360
‫Controller adında yeni bir klasör oluşturacağım.

29
00:02:10,440 --> 00:02:15,480
‫Aynı klasör yapısını istiyorsanız, henüz yapmadıysanız şimdi bu klasörü oluşturabilir ve ardından

30
00:02:15,480 --> 00:02:19,170
‫oyuncu denetleyicisi planınızı bunun içine taşıyabilirsiniz.

31
00:02:19,170 --> 00:02:23,610
‫Bir planı bir klasörden diğerine nasıl taşıyacağınızı bilmiyorsanız, bu oldukça basittir.

32
00:02:23,640 --> 00:02:30,810
‫Planı içeren klasöre gidin, tıklayın ve doğru klasöre sürükleyin ve buraya taşı'ya

33
00:02:30,810 --> 00:02:31,740
‫tıklayın.

34
00:02:31,890 --> 00:02:36,900
‫Şimdi, mermimi bu klasöre taşımak istemiyorum, bu yüzden bu eylemi iptal etmek için içerik tarayıcısında

35
00:02:36,900 --> 00:02:38,760
‫buraya tıklayacağım.

36
00:02:38,760 --> 00:02:41,370
‫Artık bir oyuncu denetleyicisi klasörüm var.

37
00:02:41,370 --> 00:02:47,760
‫Sağ tıklayıp Blueprint Class'a tıklayacağım ve bu aramada toon tanks, player controller'ı arayacağım

38
00:02:47,760 --> 00:02:51,460
‫ve bu sınıfı seçip Select'e tıklayacağım.

39
00:02:51,480 --> 00:02:57,180
‫Şimdi bu bip alt çizgi toon tankları oyuncu denetleyicisini çağırabilirim.

40
00:02:57,390 --> 00:02:59,070
‫Artık bir oyuncu kumandam var.

41
00:02:59,070 --> 00:03:02,100
‫Şimdi bunu varsayılan oyuncu kontrolörü olarak ayarlamam gerekiyor.

42
00:03:02,100 --> 00:03:08,220
‫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.

43
00:03:08,220 --> 00:03:11,670
‫Editör Ve burada oyuncu denetleyici sınıfını görüyorum.

44
00:03:11,940 --> 00:03:18,690
‫Açılır menüye tıklayacağım ve BP tune tanks, player controller'ı seçeceğim ve derleyip kaydedip

45
00:03:18,690 --> 00:03:19,950
‫kapatacağım.

46
00:03:19,950 --> 00:03:23,250
‫Artık özel oyuncu denetleyici sınıfımız var.

47
00:03:23,250 --> 00:03:25,680
‫Buna bazı işlevler eklemeye hazırız.

48
00:03:25,680 --> 00:03:31,110
‫Yani burada istediğim şey, oyuncunun tankı hareket ettirecek girdi eklemek için etkin olup olmadığını,

49
00:03:31,110 --> 00:03:34,890
‫oyuncunun etkin durumunu ayarlayabilen bir işlevdir.

50
00:03:34,890 --> 00:03:39,690
‫Şimdi oyuncu öldüğünde bunu oyun modundan çağırmayı planlıyorum.

51
00:03:39,690 --> 00:03:44,940
‫Bu yüzden burada herkese açık bir bölüm oluşturacağım ve işlev geçersiz olacak.

52
00:03:44,940 --> 00:03:55,950
‫B player enabled adında bir boolean alabilen bu set player enabled durumuna basitçe set player enabled diyeceğim.

53
00:03:56,550 --> 00:04:01,830
‫Bu şekilde, bu fonksiyonu çağırdığımızda, oynatıcının etkinleştirilmesini istiyorsak true, devre dışı

54
00:04:01,830 --> 00:04:04,620
‫bırakılmasını istiyorsak false değerini girebiliriz.

55
00:04:04,620 --> 00:04:09,090
‫Öyleyse bu işlevi tune tanklarında, oyuncuda, denetleyicide uygulayalım.

56
00:04:09,360 --> 00:04:14,100
‫CP İşte benim fonksiyonum ve tabii ki burada sınıf adına ihtiyacım var.

57
00:04:14,100 --> 00:04:20,370
‫Yani bir ayar tankı, oyuncu, kontrolör ve bir de kapsam çözümleme operatörü olacak.

58
00:04:20,370 --> 00:04:22,860
‫Şimdi, bu işlev oldukça basit olacak.

59
00:04:22,860 --> 00:04:28,320
‫B player enabled değerini kontrol edecek ve bunu basit bir if kontrolü ile yapabiliriz.

60
00:04:28,320 --> 00:04:35,460
‫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

61
00:04:35,460 --> 00:04:42,390
‫ve bu oyuncu kontrolörünün sahip olduğu piyona erişmenin yolu get pawn fonksiyonunu kullanmaktır.

62
00:04:42,390 --> 00:04:47,520
‫Bu, bir piyon döndürür ve piyon sınıfının işlevi vardır.

63
00:04:47,520 --> 00:04:55,860
‫Girişi etkinleştir ve gördüğümüz gibi girişi etkinleştir bir oyuncu denetleyicisi gerektirir, böylece bunu geçebiliriz.

64
00:04:56,190 --> 00:05:02,490
‫Şimdi kırmızı dalgalı çizgiler alıyorum çünkü bu piyon sınıfı türünü dahil etmemiz gerekiyor

65
00:05:02,490 --> 00:05:09,090
‫ve piyon için unreal engine belgelerine giderek piyonun dahil edilme şeklini kolayca görebiliriz

66
00:05:09,090 --> 00:05:13,890
‫ya da bir piyondan miras alan temel piyon sınıfımıza gidebiliriz.

67
00:05:14,070 --> 00:05:19,890
‫Ve bir piyondan miras aldığı için, piyon başlığını oraya dahil etmesi gerektiğini gördük, böylece bunu

68
00:05:19,890 --> 00:05:23,430
‫oyun çerçevesi olan eğik çizgi piyonuna kopyalayabilirim.

69
00:05:24,150 --> 00:05:26,850
‫Tank oyuncu kumandasına geri dönelim.

70
00:05:26,850 --> 00:05:30,900
‫Bu kırmızı dalgalı çizgilerden kurtulmak için buraya yapıştırabilirim.

71
00:05:30,900 --> 00:05:37,470
‫Dolayısıyla bu, B oyuncusunun etkin olduğu durumla ilgilenir, ancak burada bir LS durumuna da ihtiyacımız var.

72
00:05:38,160 --> 00:05:45,210
‫LS durumunda get pawn'ı çağıracağız ve tıpkı enable input gibi girişi devre dışı bırakmak için tasarlanmış bir

73
00:05:45,210 --> 00:05:50,580
‫fonksiyon var ve tahmin edebileceğiniz gibi disable input olarak adlandırılıyor.

74
00:05:50,580 --> 00:05:55,020
‫Bunun için de bir oyuncu kontrolörü gerekiyor.

75
00:05:55,020 --> 00:06:00,480
‫Şimdi oyuncu kontrolörünün fare imlecini göstermesi gerekiyor ve bunu da ayarlayacağız.

76
00:06:00,480 --> 00:06:04,500
‫Ve bunu, oynatıcının etkinleştirilip etkinleştirilmeyeceğine göre ayarlamak istiyoruz.

77
00:06:04,500 --> 00:06:10,950
‫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.

78
00:06:10,950 --> 00:06:18,090
‫Yani B sho fare imleci eşittir B oyuncu etkin diyeceğiz.

79
00:06:18,360 --> 00:06:20,730
‫Şimdi henüz fare imlecini göstermedik.

80
00:06:20,730 --> 00:06:21,990
‫O kısma geleceğiz.

81
00:06:21,990 --> 00:06:27,210
‫Aslında oyunu oynarken fare imlecini görmek isteriz, böylece tankımızın nereye nişan aldığını

82
00:06:27,210 --> 00:06:27,960
‫biliriz.

83
00:06:27,960 --> 00:06:29,490
‫O konuya yakında geleceğiz.

84
00:06:29,490 --> 00:06:35,490
‫Ancak şimdilik oyuncu kontrolöründe bu güzel fonksiyona sahibiz ve ne demek istediğimi göstermek için bu

85
00:06:35,490 --> 00:06:38,550
‫fonksiyonu şimdi oyun modundan çağırmak istiyoruz.

86
00:06:38,550 --> 00:06:44,610
‫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

87
00:06:44,610 --> 00:06:47,070
‫göster ayarını yaptığımızı göreceksiniz.

88
00:06:47,070 --> 00:06:48,450
‫Bu yüzden bir tane almak istiyorum.

89
00:06:48,540 --> 00:06:54,420
‫fonksiyonunu çağırabiliriz, böylece bu fonksiyonu bir boolean değeri girerek çağırabiliriz.

90
00:06:54,450 --> 00:07:00,600
‫Bu durumda, giriş işlevini devre dışı bırakmak için false ve fare imlecinin false olarak ayarlanması

91
00:07:00,600 --> 00:07:02,570
‫için B değerlerini geçeceğiz.

92
00:07:02,580 --> 00:07:08,880
‫Dolayısıyla, bir oyuncu denetleyicisi döndüren tank get player controller'ı çağırmak yerine bu işlevi burada

93
00:07:08,880 --> 00:07:09,960
‫çağırabiliriz.

94
00:07:10,050 --> 00:07:15,590
‫Bu oyuncu denetleyicisine erişmemizi sağlayan bir işaretçi değişkene sahip olmak istiyorum.

95
00:07:15,600 --> 00:07:20,560
‫Burada tune tanks oyun modlarına özel bir değişken ekleyeceğim.

96
00:07:20,580 --> 00:07:28,800
‫Bunu ileri bildireceğim ve A tipi ayar tankları, oyuncu, kontrolör olacak, bu bir işaretçi.

97
00:07:28,800 --> 00:07:35,640
‫Buna Tune Tank'ın Oyuncu Kumandası adını vereceğim ve bunu Tune Tank oyun moduna ayarlayıp oyun istatistiklerini

98
00:07:35,640 --> 00:07:39,500
‫kullanarak oynamaya başlayabilirim.

99
00:07:39,510 --> 00:07:45,360
‫Şimdi, oyun oynama istatistiklerinin oyuncu kontrolörü alma işlevi olup olmadığını merak ediyorsanız, haklıydınız.

100
00:07:45,570 --> 00:07:51,630
‫Bu, bir dünya bağlamı nesnesi ve bir oyuncu dizini gerektiren kullanışlı statik işlevlerden biridir, bu nedenle

101
00:07:51,630 --> 00:07:58,020
‫devam edip oyun statikleri için include'i kopyalayabilir ve bunu Begin Play'de burada çağırabiliriz.

102
00:07:58,020 --> 00:08:02,970
‫Burada en üstte görüyorum, zaten oyun istatistiklerim var, çünkü zaten burada kullanıyoruz

103
00:08:02,970 --> 00:08:05,310
‫ve oyuncuyu almak için oyuna başlıyoruz --.

104
00:08:05,310 --> 00:08:09,350
‫Oyuncu denetleyicisi işaretçisini ayarlamak için de aynı şeyi yapacağız.

105
00:08:09,360 --> 00:08:11,400
‫Şimdi bu, nasıl yapılacağını bilmeniz gereken bir şey.

106
00:08:11,400 --> 00:08:16,680
‫Ö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

107
00:08:16,680 --> 00:08:18,060
‫değerini ayarlamıyorsunuz?

108
00:08:20,990 --> 00:08:21,470
‫Tamam.

109
00:08:21,470 --> 00:08:28,760
‫Bu yüzden tune tanks, player, controller diyeceğiz ve bunu gameplay statics get player controller'ın

110
00:08:28,760 --> 00:08:37,550
‫sonucuna eşit olarak ayarlıyoruz ve dünya bağlamı nesnesinin bu olabileceğini ve oyuncu indeksinin dokuz değil sıfır

111
00:08:37,550 --> 00:08:40,160
‫olduğunu biliyoruz.

112
00:08:40,160 --> 00:08:45,920
‫Ve tabii ki bunun bir oyuncu kontrolörü döndürdüğünü ve bir tune tankı oyuncu kontrolörü döndürmediğini biliyoruz.

113
00:08:45,920 --> 00:08:49,460
‫Tıpkı Tank'ta yaptığımız gibi burada da oyuncu seçeceğiz.

114
00:08:49,460 --> 00:08:59,720
‫Bu yüzden bir tune tanks player controller'a cast diyeceğim ve get player controller'ın sonucunu cast ediyoruz.

115
00:08:59,930 --> 00:09:05,270
‫Şimdi Oyuna Başla'dan sonra, ayar tanklarına ve oyuncu kontrolörüne sahip olacağız.

116
00:09:05,270 --> 00:09:11,870
‫Ve şimdi buraya gelebiliriz ve oyuncu denetleyicisini doğrudan tanktan get player controller kullanarak

117
00:09:11,870 --> 00:09:19,430
‫almak yerine, tune tanks player controller değişkenimizin geçerli olduğundan emin olmak için kontrol edebiliriz ve sonra

118
00:09:19,430 --> 00:09:21,830
‫yaptığımız işlevi çağırabiliriz.

119
00:09:21,830 --> 00:09:23,090
‫Geri dönüp bir bakalım.

120
00:09:23,090 --> 00:09:30,620
‫Buna oyuncu etkin durumunu ayarla denir ve burada oyun modunda girişi devre dışı bırakmak ve imleci göstermeyi durdurmak istiyoruz,

121
00:09:30,620 --> 00:09:33,650
‫yani bunun için false değerini geçeceğiz.

122
00:09:33,650 --> 00:09:43,490
‫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

123
00:09:43,490 --> 00:09:49,340
‫kullanıyoruz, bu da tune tanks, player controller'ı dahil etmemiz gerektiği anlamına

124
00:09:49,340 --> 00:09:50,300
‫geliyor.

125
00:09:50,300 --> 00:09:56,570
‫Burada en üstte ayar tanklarını, oyuncu kumandasını ekleyeceğiz.

126
00:09:57,620 --> 00:10:00,890
‫Ve şimdi bu tip OC'yi tanımladık.

127
00:10:00,890 --> 00:10:02,630
‫Devam edelim ve bunu derleyelim.

128
00:10:02,780 --> 00:10:08,630
‫Ve bunu tamamlamadan önce yapacağımız son şey, oyuncu denetleyicisi planımıza gitmek

129
00:10:08,630 --> 00:10:15,320
‫ve fare arayüzü bölümüne gitmenizi istiyorum ve Varsayılan Fare İmleci yazdığını göreceksiniz.

130
00:10:15,350 --> 00:10:19,730
‫Şimdi açılır menüye tıklayabiliriz ve aralarından seçim yapabileceğimiz bir dizi farklı imleç vardır.

131
00:10:19,730 --> 00:10:21,770
‫Ve ben Crosshairs'i seçeceğim.

132
00:10:21,950 --> 00:10:27,830
‫Şimdi, henüz fare imlecini göstermiyoruz, ancak oyuna başladığımızda imleci göstereceğiz.

133
00:10:27,830 --> 00:10:33,920
‫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ı

134
00:10:33,920 --> 00:10:35,060
‫istiyorum.

135
00:10:35,060 --> 00:10:41,330
‫Bu yüzden varsayılan fare imlecini artı işaretlerine ayarlayın ve fare imlecini gerçekten etkinleştirdiğimizde bu artı

136
00:10:41,330 --> 00:10:43,040
‫işaretlerini görebileceğiz.

137
00:10:43,040 --> 00:10:50,540
‫Ö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

138
00:10:50,540 --> 00:10:53,420
‫devre dışı bırakmak için bunu kullanıyoruz.

139
00:10:53,420 --> 00:11:00,290
‫Ayrıca bu fonksiyonu, aktarılan Boolean'a bağlı olarak fare imlecini göstermek veya gizlemek için kullanıyoruz.

140
00:11:00,290 --> 00:11:06,350
‫Ve oluşturduğumuz blueprint'te fare imleci türünü ayarladık ve çok yakında oyun başladığında fare imlecini

141
00:11:06,350 --> 00:11:12,140
‫göstermeye başladığımızda artı işaretli fare imlecinin neye benzediğini göreceğiz.

142
00:11:12,140 --> 00:11:12,980
‫Çok iyi iş çıkardın.

143
00:11:12,980 --> 00:11:18,620
‫Artık bu oyuncu kontrolörüne sahibiz ve oyun işlevselliğini uygulamaya devam etmeye hazırız.

144
00:11:18,620 --> 00:11:20,810
‫Bir sonraki videoda görüşürüz.

