﻿1
00:00:04,400 --> 00:00:05,210
‫Merhaba ve hoş geldiniz.

2
00:00:05,210 --> 00:00:10,100
‫Bu derste, sınıfımızdaki özelliklere varsayılan değerler vermemizi sağlayan

3
00:00:10,100 --> 00:00:13,790
‫yapıcı adı verilen özel bir işlevi inceleyeceğiz.

4
00:00:13,790 --> 00:00:16,820
‫Editörde arandığında göreceğiz.

5
00:00:16,820 --> 00:00:18,890
‫Hadi içeri dalalım ve öğrenelim.

6
00:00:19,430 --> 00:00:25,430
‫Şimdi, bu tetikleyici bileşenle, buraya bir tik bileşeni işlevi eklemek istiyorum, böylece

7
00:00:25,430 --> 00:00:32,450
‫hangi bileşenlerin, hangi diğer aktörlerin şu anda bu tetikleyici bileşenle örtüştüğünü kontrol edebilir

8
00:00:32,450 --> 00:00:37,010
‫ve doğru türde bir aktör olup olmadığını etkinleştirebiliriz.

9
00:00:37,550 --> 00:00:39,890
‫Sorun şu ki, sorunun ne olduğunu göreceğiz.

10
00:00:39,890 --> 00:00:41,870
‫Bir tik fonksiyonu uygulamaya çalışalım.

11
00:00:41,870 --> 00:00:48,110
‫Bir tik bileşeni işlevinin bildiriminin nasıl olması gerektiğini görmek için grab H'ye gidersek,

12
00:00:48,110 --> 00:00:50,690
‫bunun public bölümünde olması gerekir.

13
00:00:50,690 --> 00:00:53,450
‫Sanal bir boşluk, tik bileşeni, delta zamanı.

14
00:00:53,450 --> 00:00:56,000
‫Bir sürü parametre var, o yüzden kopyalayalım.

15
00:00:56,030 --> 00:01:04,430
‫Tik bileşeni başlığına gidin, başlangıç oyunumuzun altına ekleyin ve ardından bu tanımı kopyalayıp

16
00:01:04,430 --> 00:01:08,570
‫tetikleyici bileşenimize taşıyacağız.

17
00:01:08,570 --> 00:01:13,280
‫CP Ve fark edeceğimiz bir şey de burada çıkarabileceğimiz birkaç anahtar kelime olduğudur.

18
00:01:13,280 --> 00:01:15,140
‫Sanal anahtar sözcüğünü kaldırabiliriz.

19
00:01:15,140 --> 00:01:17,030
‫Bu genellikle uyabileceğimiz bir kuraldır.

20
00:01:17,030 --> 00:01:19,430
‫Ayrıca override anahtar sözcüğünü de kaldırabiliriz.

21
00:01:19,430 --> 00:01:22,040
‫Bunlar C++ dosyasında olması gerekmeyen şeylerdir.

22
00:01:22,190 --> 00:01:24,770
‫Sınıf adını eklememiz gerekiyor.

23
00:01:24,770 --> 00:01:26,330
‫Böylece kolon bileşenini tetiklersiniz.

24
00:01:26,330 --> 00:01:27,380
‫Kolon.

25
00:01:27,830 --> 00:01:35,870
‫Ardından noktalı virgülümüzü parantezlerle değiştiriyoruz ve süper tik bileşenine çağrı yapmamız gerekiyor.

26
00:01:35,870 --> 00:01:43,460
‫Bu oldukça uzun bir çağrı olduğu için CP'den kopyalayıp buraya yapıştıracağım.

27
00:01:43,460 --> 00:01:49,040
‫Şimdi bunun yaptığı şey, esasen ebeveynin tik bileşeni işlevini çağırmaktır.

28
00:01:49,040 --> 00:01:52,880
‫Yani bu durumda ebeveyn, kutu bileşenimizdir.

29
00:01:52,880 --> 00:02:00,050
‫Dolayısıyla, bu bileşenin çalışması için kullanılması ve etkinleştirilmesi gereken herhangi bir işlev olması durumunda

30
00:02:00,050 --> 00:02:01,580
‫bunu çağırmak önemlidir.

31
00:02:01,580 --> 00:02:06,890
‫Bunu yapmazsak, esasen bu işlevselliği atlamış oluruz ve işler bozulabilir.

32
00:02:06,890 --> 00:02:12,980
‫Başla, oyna ve işaretle bileşenini uygularken her zaman süper çağırmayı hatırlamak çok

33
00:02:12,980 --> 00:02:13,820
‫önemli.

34
00:02:13,820 --> 00:02:17,750
‫Şimdi günlük mesajımızı Begin Play'den kopyalayalım ve tick bileşenine koyalım.

35
00:02:17,750 --> 00:02:25,040
‫Tick bileşeninin günlüğe kaydedildiğini söylemek ve Tick bileşeni burada tikliyor demek yerine, devam edip derleyeceğiz

36
00:02:25,100 --> 00:02:30,740
‫ve derleyici bittiğinde bu tikin gerçekten çalışıp çalışmadığını göreceğiz, devam edip oynat

37
00:02:30,740 --> 00:02:34,160
‫düğmesine basalım, çıktı günlüğümüzü açalım ve.

38
00:02:34,190 --> 00:02:37,400
‫Şu anda hiçbir şey olmuyor gibi görünüyor.

39
00:02:37,400 --> 00:02:43,910
‫Bunun nedeni, optimizasyon açısından çoğu bileşenin otomatik ve gerçek dışı olarak tiklerinin

40
00:02:43,910 --> 00:02:45,530
‫kapalı olmasıdır.

41
00:02:45,530 --> 00:02:49,880
‫Yani aktörler genellikle varsayılan olarak bunu açık tutarlar, ancak bileşenler genellikle bunu kapalı tutar.

42
00:02:49,880 --> 00:02:54,890
‫Aslında, işaretlemenin işe yaradığını bildiğimiz hareketimiz gibi diğer bileşenlerden bazılarına

43
00:02:54,890 --> 00:02:58,610
‫bakarsak, dosyanın en üstünde bunun olduğunu görebilirsiniz.

44
00:02:58,610 --> 00:03:06,950
‫Bir fonksiyonu taşıyorsunuz ve bu birincil bileşene sahip tick dot B, sınıfta bu özelliği ayarlamazsanız her

45
00:03:06,950 --> 00:03:09,740
‫zaman tick eşittir true olabilir.

46
00:03:09,740 --> 00:03:15,320
‫Yani bu, klasik birincil bileşen tick'in bir özelliği olarak sınıfın bir özelliğidir

47
00:03:15,320 --> 00:03:19,340
‫ve içinde B can ever tick özelliği olan bir yapıdır.

48
00:03:19,490 --> 00:03:28,490
‫Yani burada yaptığımız şey, mover sınıfını oluştururken bu varsayılan değeri ayarlamaktır.

49
00:03:28,490 --> 00:03:29,660
‫İşte bu işlev budur.

50
00:03:29,660 --> 00:03:37,100
‫Buna yapıcı denir ve varsayılan değerleri otomatik olarak ayarlamak için yeni bir taşıyıcı bileşen oluşturduğumuzda çağrılan

51
00:03:37,100 --> 00:03:42,950
‫bir fonksiyondur, should move move time ile yaptığımız gibi başlık dosyasında bazı varsayılan değerler

52
00:03:42,950 --> 00:03:44,750
‫ayarlayabiliriz.

53
00:03:44,750 --> 00:03:51,800
‫Ancak bunu başlık dosyasında yapmanın alternatifi, bu özellikleri aslında yapıcıda ayarlayabilmemizdir.

54
00:03:51,800 --> 00:03:57,350
‫Şimdi burada sözdizimine dikkat etmenizi istiyorum, bir başlık dosyasını taşıyacağız.

55
00:03:57,350 --> 00:04:03,320
‫Bir kurucunun sınıfla tamamen aynı şekilde adlandırıldığını görebilirsiniz.

56
00:04:03,320 --> 00:04:12,350
‫Yani you mover, taşıyıcı bileşenimizin sınıf adıdır ve kurucusu da you mover notice olarak adlandırılır.

57
00:04:12,350 --> 00:04:14,630
‫Dönüş türü de yoktur.

58
00:04:14,630 --> 00:04:19,490
‫Yeni bir nesne oluşturduğumuz için herhangi bir şey döndürmek mantıklı değildir.

59
00:04:19,490 --> 00:04:22,820
‫Biz sadece bu sınıfı gerçekleştiriyoruz.

60
00:04:22,820 --> 00:04:30,560
‫İhtiyacımız olan tek şey bu sınıfın özelliklerine erişmek ve ayrıca public olarak ayarlandığına dikkat etmektir.

61
00:04:30,560 --> 00:04:35,180
‫Bu yüzden sınıf tanımımızın public bölümünde yer alır.

62
00:04:35,180 --> 00:04:39,470
‫Bu yüzden sizi kendiniz için işaretlemeyi etkinleştirmeye davet ediyorum.

63
00:04:39,470 --> 00:04:44,720
‫Bu nedenle, başlıkta bir kurucu oluşturacak ve hem taşıyıcı H'de hem de çok sayıda

64
00:04:44,720 --> 00:04:52,130
‫H'de gördüğümüz sözdizimini aklınızda tutarak, CP dosyalarındaki diğer bileşenlerde gördüğümüz gibi işaretlemeyi

65
00:04:52,130 --> 00:04:54,620
‫etkinleştireceksiniz.

66
00:04:54,620 --> 00:04:57,140
‫Yani bunun nasıl yapıldığını kopyalayabilirsiniz.

67
00:04:57,290 --> 00:05:02,450
‫Ne zaman çağrıldığını denemek ve görmek için kurucudan da günlük tutabilirsiniz?

68
00:05:02,450 --> 00:05:03,610
‫Oyuna başlamak gibi mi?

69
00:05:03,780 --> 00:05:07,290
‫Yoksa oyun başlamadan önce mi çağrılıyor?

70
00:05:07,320 --> 00:05:09,840
‫Videoyu durdurun ve bir deneyin.

71
00:05:12,920 --> 00:05:13,310
‫Kay.

72
00:05:13,310 --> 00:05:14,100
‫Tekrar hoş geldiniz.

73
00:05:14,120 --> 00:05:21,320
‫Bu yüzden trig bileşenlerine gireceğiz ve burada yeni bir genel bölüm oluşturacağız.

74
00:05:22,070 --> 00:05:26,630
‫Sonundaki iki nokta üst üste işaretini hatırlıyoruz ve sonra onu sınıfla tamamen aynı şekilde çağırmamız gerekiyor.

75
00:05:26,630 --> 00:05:28,040
‫Yani bu tetikleyici bir bileşen değildir.

76
00:05:28,040 --> 00:05:33,320
‫Tetikleyici siz değilsiniz, tetikleyici bileşen tam olarak sizsiniz.

77
00:05:33,320 --> 00:05:39,770
‫Ve sonra bu kurucu için herhangi bir argümanımız yok, bu yüzden sadece boş parantezler ve ardından satırın sonuna

78
00:05:39,770 --> 00:05:41,600
‫bir noktalı virgül koyuyoruz.

79
00:05:41,600 --> 00:05:46,880
‫Şimdi CPP dosyasına geçebilir ve uygulamayı burada yapabiliriz.

80
00:05:46,880 --> 00:05:48,290
‫Yine, bir dönüş türüne ihtiyacımız yok.

81
00:05:48,290 --> 00:05:57,560
‫Yani sadece iki nokta üst üste bileşenini tetikliyorsunuz, iki nokta üst üste bileşenini tetikliyorsunuz, biraz tekrarlı, ama çalışma

82
00:05:57,560 --> 00:05:58,550
‫şekli bu.

83
00:05:58,550 --> 00:06:05,420
‫Sonra küme parantezleri koyarız ve burada sınıf örneğine varsayılan değerleri vermek için herhangi bir

84
00:06:05,420 --> 00:06:07,280
‫ayar kodumuzu yapabiliriz.

85
00:06:07,280 --> 00:06:12,530
‫Dolayısıyla, bir CPP'yi ele geçirip ne yaptığına bakarsak, birincil bileşeni olan tick

86
00:06:12,530 --> 00:06:16,670
‫dot B'nin her zaman true değerine eşit olduğunu görebilirsiniz.

87
00:06:16,670 --> 00:06:17,840
‫Bunu yazalım.

88
00:06:17,840 --> 00:06:23,540
‫Birincil bileşen kene noktası B hiç kene olabilir.

89
00:06:23,540 --> 00:06:31,520
‫B, boolean türü true değerine eşit olan ve küçük t harfi ile yazılan şeyler için sıklıkla kullandığımız bir önektir.

90
00:06:31,670 --> 00:06:38,720
‫Bu nedenle, bir kurucuda yapılan değişiklikler canlı kodlamada her zaman düzgün bir şekilde yayılmadığından, editörü

91
00:06:38,720 --> 00:06:39,980
‫kapatacağım.

92
00:06:40,100 --> 00:06:47,000
‫Visual Studio kodu içinden yeniden oluşturacağım, ardından EU proje dosyasından yeniden başlatacağım.

93
00:06:47,000 --> 00:06:52,160
‫Bu tamamlandığında, devam edip oynat düğmesine basacağım, çıktı günlüğümüze bir göz atacağım ve yeterince eminim,

94
00:06:52,160 --> 00:06:54,890
‫tetikleyici bileşenin tıkladığını görebiliyoruz.

95
00:06:55,130 --> 00:07:00,230
‫Bu nedenle, can sıkıcı olduğu için bu günlük mesajını kaldıracağım ve Visual Studio kodundaki çıktı

96
00:07:00,230 --> 00:07:04,460
‫günlüğünü kapatacağım, tik bileşenindeki bu günlük mesajını kaldıracağım.

97
00:07:04,460 --> 00:07:06,020
‫Şimdi çalıştığını görebiliyoruz.

98
00:07:06,410 --> 00:07:10,910
‫Yapmak istediğimiz şey, kurucumuzda bir günlük oluşturmaktır.

99
00:07:11,720 --> 00:07:17,990
‫Şimdi yeni bir günlük oluşturalım ve canlı kodlamanın bu sefer bunu yakalayıp yakalayamayacağını görelim

100
00:07:17,990 --> 00:07:21,680
‫ve ardından çıktı günlüğümüze gidip hemen bir göz atalım.

101
00:07:21,680 --> 00:07:23,750
‫Burada hiçbir şey görünmüyor.

102
00:07:24,170 --> 00:07:28,370
‫Peki, devam edip oynat tuşuna bastığımda çıktı günlüğüme bir göz atıyorum.

103
00:07:28,370 --> 00:07:33,980
‫Tetikleyici bileşenin canlı olduğuna dair günlük mesajını görebiliyorum ve bundan çok önce.

104
00:07:33,980 --> 00:07:39,020
‫Aslında, sadece dünyayı yaratırken çok ileride inşa ettiğini görebilirsiniz.

105
00:07:39,020 --> 00:07:44,630
‫Açıkçası oyuna başlamadan önce çok erken inşa etmeye başlıyor çünkü oynamaya başlamadan önce tüm dünyayı hazır

106
00:07:44,630 --> 00:07:46,400
‫hale getirmemiz gerekiyor.

107
00:07:46,400 --> 00:07:51,440
‫Yani oynat tuşuna bastığımızda gerçekleşiyor ama aslında editörde de gerçekleşiyor.

108
00:07:51,440 --> 00:07:58,130
‫Burada bir aktör seçip ona bir bileşen eklersem ve tetikleyicimizi eklersem, çıktı günlüğüme

109
00:07:58,130 --> 00:07:59,300
‫bir göz atın.

110
00:07:59,300 --> 00:08:03,050
‫Ardından yapı mesajının gerçekten yazdırıldığını görebilirsiniz.

111
00:08:03,050 --> 00:08:10,490
‫Bu yüzden kurucularımızda ne yaptığımıza dikkat etmeliyiz çünkü aslında C++ kodu sadece biz düzenleme

112
00:08:10,490 --> 00:08:14,540
‫yaparken çağrılıyor, oyunumuzu oynamıyoruz bile.

113
00:08:14,540 --> 00:08:20,000
‫Bu nesneler oluşturulmakta ve dolayısıyla ayarlanmaktadır ve bu nedenle kurucularının çağrılması gerekir.

114
00:08:20,090 --> 00:08:25,880
‫Devam edip tetikleyiciyi tekrar sileceğim ve oluşturma günlük mesajımızı ve oynatmaya

115
00:08:25,880 --> 00:08:30,170
‫başlama günlük mesajımızı da kaldırarak biraz temizleyeceğim.

116
00:08:30,170 --> 00:08:30,800
‫Harika bir şey.

117
00:08:30,800 --> 00:08:37,430
‫Bu derste kendi bileşenlerimizi, sahne bileşenleri ve ACT bileşenleri için şablonlarda oluşturulanlarla neredeyse

118
00:08:37,430 --> 00:08:42,320
‫aynı olacak şekilde nasıl ayarlayabileceğimizi gördük, sınıfımızdaki özelliklere

119
00:08:42,320 --> 00:08:47,720
‫varsayılan değerler vermek için bir yapıcıyı nasıl kullanacağımızı gördük.

120
00:08:47,720 --> 00:08:49,610
‫Bir sonraki derste görüşürüz.

