﻿1
00:00:04,490 --> 00:00:05,690
‫Merhaba ve hoş geldiniz.

2
00:00:05,690 --> 00:00:11,630
‫Bu derste, seviye planında değil, belirli bir plan sınıfında bulunan fonksiyonlar

3
00:00:11,630 --> 00:00:14,300
‫hakkında bilgi edineceğiz.

4
00:00:14,300 --> 00:00:20,120
‫Bunlara üye fonksiyonlar denir ve nesne yönelimli programlama için kesinlikle çok önemlidir.

5
00:00:20,120 --> 00:00:22,700
‫Nasıl çalıştıklarına bir bakalım.

6
00:00:23,150 --> 00:00:31,430
‫Dolayısıyla, spawn projectile fonksiyonumuzda, seviye planında, burada impulsu eklemek, impulsun yönünü

7
00:00:31,430 --> 00:00:36,830
‫almak ve statik örgü bileşenini almakla ilgili bir sürü düğümümüz var.

8
00:00:36,920 --> 00:00:43,610
‫Bu düğümlerin tümü BP mermi örneğini derinlemesine kullanır.

9
00:00:43,610 --> 00:00:50,690
‫Tüm bu kodu alıp BP mermisine taşıyabilsek ve böylece bu verilerle ilgilenen kodun verinin kendisiyle

10
00:00:50,690 --> 00:00:55,130
‫birlikte yaşamasını sağlasak harika olmaz mıydı?

11
00:00:55,280 --> 00:00:59,300
‫Nesne yönelimli programlamanın tüm amacı da budur.

12
00:00:59,300 --> 00:01:07,040
‫Dolayısıyla nesne yönelimli programlamayı, işledikleri verilerle birlikte yaşayan fonksiyonlar olarak tanımlayabiliriz.

13
00:01:07,400 --> 00:01:09,080
‫Peki bu nasıl çalışıyor?

14
00:01:09,080 --> 00:01:13,520
‫Nesnelerin belirli örnekleri üzerinde nasıl işlevler oluşturabiliriz?

15
00:01:13,940 --> 00:01:20,420
‫Bunu yapabilmemizin bir yolu BP mermi sınıfımızı açmak ve tam plan düzenleyiciyi aç seçeneğine

16
00:01:20,420 --> 00:01:27,020
‫tıkladığımızdan emin olmaktır, bu tam plan düzenleyicide bir planım bölmesi ve bir işlev bölümü

17
00:01:27,020 --> 00:01:35,810
‫olduğunu görebilirsiniz, böylece BP proje sınıfında yeni bir işlev oluşturmak için buradaki artı okuna basabiliriz.

18
00:01:35,810 --> 00:01:41,960
‫Ve bu fonksiyona adınızı yazdırın ve bu da adınızı yazdırsın adını vereceğim.

19
00:01:41,960 --> 00:01:44,150
‫İşlev tam da bunu yapmalıdır.

20
00:01:44,570 --> 00:01:49,910
‫Bu işlevin yürütülmesini başlatan bir düğümümüz olduğunu görebilirsiniz, böylece yürütme pimini

21
00:01:49,910 --> 00:01:52,460
‫çekebilir ve print string yazabiliriz.

22
00:01:52,460 --> 00:01:53,810
‫Bu yüzden çıktısı alınacak.

23
00:01:53,810 --> 00:01:54,380
‫Merhaba.

24
00:01:54,380 --> 00:01:57,200
‫Bu fonksiyonun adı tam olarak bu değil, değil mi?

25
00:01:57,200 --> 00:01:59,390
‫Ama bunu birazdan çözeceğiz.

26
00:01:59,690 --> 00:02:04,130
‫Yani burada sahip olduğumuz şey bir üye fonksiyon olarak bilinir.

27
00:02:04,130 --> 00:02:12,020
‫Üye işlev, bir sınıfın belirli bir örneği üzerinde her zaman çağrılan bir işlevdir.

28
00:02:12,020 --> 00:02:18,320
‫Bu yüzden tüm BP mermilerinin üzerine adınızı yazdıracağım demeyin.

29
00:02:18,320 --> 00:02:25,010
‫Bir numaralı BP mermisini ya da yeni ortaya çıkan BP mermisini çağırmak, üzerine isminizi yazdırmak

30
00:02:25,010 --> 00:02:26,720
‫istiyorum demelisiniz.

31
00:02:26,720 --> 00:02:36,650
‫Dolayısıyla, seviye planımıza gidersek, yapmanız gereken şey BP mermisini ortaya çıkarmaktan çıkan

32
00:02:36,650 --> 00:02:38,780
‫referansı almaktır.

33
00:02:39,020 --> 00:02:48,050
‫Ve bu referanstan adınızı yazdır diyebilirsiniz ve otomatik olarak Hedef adlı özel bir giriş düğümüne

34
00:02:48,050 --> 00:02:51,920
‫bağlandığını görebilirsiniz.

35
00:02:51,920 --> 00:02:54,410
‫Ve tabii ki yürütme pimlerini de bağlamanız gerekiyor.

36
00:02:54,410 --> 00:02:58,580
‫Reklam dürtüsünden sonra gerçekleşmesi için onu bağlayacağım.

37
00:02:58,580 --> 00:03:08,750
‫Ancak bu özel hedef giriş düğümüyle ilgili ilginç olan şey, BP mermisine giderseniz, bu baskıyı göreceksiniz.

38
00:03:08,750 --> 00:03:12,830
‫Adınızın böyle bir giriş düğümü yok.

39
00:03:12,830 --> 00:03:14,750
‫Peki burada neler oluyor?

40
00:03:14,990 --> 00:03:24,230
‫Dolaylı olarak, herhangi bir üye fonksiyonun mevcut hedefi veya mevcut örneği olan bir parametresi vardır.

41
00:03:24,560 --> 00:03:32,030
‫Bunu blueprint olay grafiğine sağ tıklayıp self yazarak elde edebilirsiniz.

42
00:03:32,390 --> 00:03:38,540
‫Burada get a reference to self adında bir düğüm olduğunu ve bu düğümün aşağıdaki gibi bir self düğümü oluşturduğunu görebilirsiniz.

43
00:03:38,540 --> 00:03:46,370
‫Daha sonra bu self nesne referansını kullanarak bu nesne üzerindeki herhangi bir özelliğe erişebilirsiniz.

44
00:03:46,370 --> 00:03:53,270
‫Dolayısıyla, BP mermimizin adını öğrenmek istersek, daha önce yaptığımız gibi, öz referanstan

45
00:03:53,270 --> 00:03:57,110
‫çekip get display name yazabilirsiniz.

46
00:03:57,110 --> 00:04:01,250
‫Ve sonra görünen adı yazdırma dizemize bağlayabilirsiniz.

47
00:04:01,250 --> 00:04:09,890
‫Şimdi oynadığımızda ve yeni bir mermi ateşlediğimizde, merminin adını yazdırdığını görebilirsiniz ve

48
00:04:10,310 --> 00:04:17,210
‫oluşturduğum her yeni mermi için adın farklı olduğunu görebilirsiniz, çünkü üye işlevi

49
00:04:17,210 --> 00:04:23,750
‫tarafından atıfta bulunulan öz farklı bir özdür ve farklı bir mermidir.

50
00:04:23,750 --> 00:04:32,390
‫Böylece self'in üye fonksiyonların içinde bulunan ve her zaman kullandığımız belirli mevcut örneği işaret

51
00:04:32,390 --> 00:04:35,270
‫eden bir düğüm olduğunu öğrendik.

52
00:04:35,270 --> 00:04:40,190
‫İlk etapta üye fonksiyonlara bakmamızın tüm amacı, başlamamızın nedeni,

53
00:04:40,190 --> 00:04:45,680
‫seviye planındaki bu düğümler, statik ağı aldığımız yer, ileri vektörü alıyoruz ve

54
00:04:45,680 --> 00:04:48,260
‫sonra bunlara bir dürtü ekliyoruz.

55
00:04:48,560 --> 00:04:51,860
‫Bunlar BP mermisi üzerinde yaşamaları gerektiğini hissettiriyor.

56
00:04:51,860 --> 00:04:55,310
‫İşte ben de size bunu yapmanız için meydan okumak istiyorum.

57
00:04:55,310 --> 00:04:58,730
‫Yani bu biraz evrimleşmiş bir meydan okuma ama bölümün sonuna doğru geliyoruz.

58
00:04:58,730 --> 00:05:01,730
‫Bu yüzden sizi adım adım yönlendireceğim.

59
00:05:02,120 --> 00:05:03,950
‫Bu yüzden bir başlatma fonksiyonu yapacağız.

60
00:05:04,060 --> 00:05:05,800
‫BP mermisinde Shin.

61
00:05:05,800 --> 00:05:07,810
‫Bu yüzden BP mermisi üzerinde oluşturun.

62
00:05:07,810 --> 00:05:08,890
‫Şu artı düğmesine git.

63
00:05:08,890 --> 00:05:11,080
‫Yeni bir tane ekleyin, isim verin ve başlatın.

64
00:05:11,440 --> 00:05:18,700
‫Ardından, seviye planındaki düğümleri kesip yeni oluşturduğunuz bu işleve yapıştırın ve yürütme

65
00:05:18,700 --> 00:05:22,090
‫pinlerini vb. bağladığınızdan emin olun.

66
00:05:22,510 --> 00:05:28,000
‫Şimdi bunu derlemeye çalışacaksınız, bunu planlarda çok sık yapmadık, ancak derleme, kodunuzu

67
00:05:28,000 --> 00:05:34,390
‫esasen yazım denetimi yapmanıza ve Blueprint derleyicisinin öngörebileceği herhangi bir hata olmadığından

68
00:05:34,390 --> 00:05:36,850
‫emin olmanıza olanak tanır.

69
00:05:36,850 --> 00:05:43,660
‫Bunu yapmanın yolu, sol üstteki düğmeye gitmek ve derle düğmesine basmaktır; herhangi bir hata varsa, bunlar

70
00:05:43,660 --> 00:05:48,580
‫altta derleyici sonuçları adı verilen küçük bölmede görünecektir.

71
00:05:48,580 --> 00:05:53,530
‫Derlemenin başarılı olduğunu görebilirsiniz, ancak herhangi bir hata burada görünecek ve bazen hatanın nerede

72
00:05:53,530 --> 00:05:57,250
‫olduğunu belirtmek için bir düğüm üzerinde biraz kırmızı renk alacaksınız.

73
00:05:57,790 --> 00:06:03,730
‫Ve bu hatanın ne söylediğini anlamaya çalışıp çalışamayacağınızı ve öğrendiğimiz yeni self düğümünü kullanarak

74
00:06:03,730 --> 00:06:07,480
‫hatayı düzeltip düzeltemeyeceğinizi görmek istiyorum.

75
00:06:07,930 --> 00:06:15,850
‫Ve sonra devam etmeniz ve yazdırmamız için yaptığımız gibi örneği sürükleyerek seviye planından bu

76
00:06:15,850 --> 00:06:18,130
‫işlevi çağırmanız gerekir.

77
00:06:18,130 --> 00:06:24,760
‫Self düğümünüz, spawn düğümünden oluşturulan yeni mermi örneğinden sürüklenir ve fırlatma işlevini

78
00:06:24,760 --> 00:06:25,960
‫çağırır.

79
00:06:26,200 --> 00:06:28,360
‫Videoyu duraklatın ve deneyin.

80
00:06:31,400 --> 00:06:32,000
‫Tamam.

81
00:06:32,000 --> 00:06:32,890
‫Tekrar hoş geldiniz.

82
00:06:32,900 --> 00:06:39,320
‫Bu yüzden BP mermimize gideceğim, plan bölmemdeki fonksiyonların yanındaki artı

83
00:06:39,320 --> 00:06:47,090
‫düğmesine basacağım ve seviye planımıza geri dönelim, düğümleri keselim ve BP mermisine gidip yapıştıralım

84
00:06:47,090 --> 00:06:51,740
‫fonksiyonuna isim vermek için başlat yazacağım.

85
00:06:52,010 --> 00:06:58,550
‫Şimdi impuls eklemek için başlatmadan yürütmeyi bağlamam gerekiyor ve şimdi derle düğmesine

86
00:06:58,550 --> 00:07:04,850
‫basacağım ve statik ağda bir hata aldığımı veya statik ağ düğümünü aldığımı görüyorsunuz.

87
00:07:05,060 --> 00:07:10,550
‫Derleyici sonuçlarına bakarsanız, geçersiz bir hedef kullandığını görürsünüz.

88
00:07:10,700 --> 00:07:15,290
‫Dolayısıyla, buradaki girdiyi hedeflemek doğru değildir.

89
00:07:15,290 --> 00:07:25,040
‫Şimdi yapmanızı önerdiğim gibi, sağ tıklayıp self yazarak self'e bir referans alabilir ve ardından bu self'i

90
00:07:25,520 --> 00:07:28,460
‫hedefe getirebilirsiniz.

91
00:07:28,730 --> 00:07:34,490
‫Şimdi tekrar derle tuşuna basarsanız hatanın ortadan kalktığını ve başarılı

92
00:07:34,490 --> 00:07:43,550
‫bir şekilde derlendiğini görebilirsiniz çünkü artık bu başlatma işlevinin çağrıldığı mevcut mermiden statik ağ bileşenini

93
00:07:43,550 --> 00:07:46,010
‫alabilmektedir.

94
00:07:46,490 --> 00:07:56,060
‫Şimdi seviye planımıza geri dönersek, spawn aktörümüzden çıkış pinini alabilir ve launch fonksiyonumuzu

95
00:07:56,060 --> 00:07:59,930
‫çağırmak için launch yazabiliriz.

96
00:07:59,930 --> 00:08:06,080
‫Yürütme piminin benim için otomatik olarak bağlandığını görebilirsiniz ve başlatma işlevinden

97
00:08:06,080 --> 00:08:12,500
‫sonra istersek adınızı yazdır işlevimizi bağlayabiliriz, ancak bu sadece hata ayıklama ve gösteri

98
00:08:12,500 --> 00:08:18,560
‫amaçlıydı ve test ederseniz, hala başarıyla başlatıldığını görebilirsiniz.

99
00:08:18,590 --> 00:08:24,620
‫Ancak şimdi fırlatma ile ilgilenen kod merminin kendisinde yaşıyor.

100
00:08:24,620 --> 00:08:25,250
‫Harika bir şey.

101
00:08:25,250 --> 00:08:30,980
‫Bu derste nesne yönelimli programlamanın temel kavramlarından biri olan üye fonksiyonları öğrendik.

102
00:08:30,980 --> 00:08:32,780
‫Bir sonrakinde görüşürüz.

