﻿1
00:00:04,470 --> 00:00:05,430
‫Merhaba ve hoş geldiniz.

2
00:00:05,430 --> 00:00:11,010
‫Bu derste, çirkin heykelimizi gerçekten tutabilmemiz ve onu önümüzde

3
00:00:11,010 --> 00:00:15,330
‫taşıyabilmemiz için tutucumuzu kuracağız.

4
00:00:15,330 --> 00:00:17,670
‫Hadi içeri dalalım ve bunu nasıl yapacağımızı görelim.

5
00:00:18,090 --> 00:00:24,540
‫Şimdi bu tutma bileşenini rotasyonlu bir konumda çağırmaya başlamamızın zamanı geldi.

6
00:00:24,540 --> 00:00:26,790
‫Şimdi, daha önce de söylediğim gibi, aslında bunun iki kısmı var.

7
00:00:26,790 --> 00:00:34,290
‫Bileşeni yakalamamız ve daha sonra hareket etmesi için hedef konumunu ve rotasyonunu da ayarlamamız

8
00:00:34,290 --> 00:00:36,180
‫gerekir.

9
00:00:36,180 --> 00:00:44,580
‫Bu yüzden grab fonksiyonumuzda ilk olarak fizik tutamacımıza bir işaretçi bulmamız gerekecek.

10
00:00:44,580 --> 00:00:51,690
‫Bu yüzden Begin Play'den satırı kopyalayacağım ve grabber'a gidip buraya koyacağım.

11
00:00:51,690 --> 00:00:55,920
‫Ve kendimizi bunun geçersiz olmasından korumak için.

12
00:00:55,920 --> 00:00:57,510
‫Peki, ne olması gerekiyor?

13
00:00:57,510 --> 00:01:00,330
‫Aslında yapmak istediğimiz bir şey yok.

14
00:01:00,330 --> 00:01:03,060
‫Eğer bir fizik tutamağımız yoksa, hiçbir şeyi tutamayız.

15
00:01:03,150 --> 00:01:10,200
‫Dolayısıyla, bu yakalama işlevinin tüm gövdesini bir if deyimine koyabiliriz, ancak bu biraz dağınık görünebilir.

16
00:01:10,200 --> 00:01:13,800
‫Bunun yerine yapabileceğimiz şey, erken dönüş olarak bilinen şeydir.

17
00:01:13,830 --> 00:01:18,720
‫Esasen, sadece fiziğin işleyip işlemediğini söylüyoruz.

18
00:01:19,490 --> 00:01:21,720
‫Eşittir null işaretçisine eşittir.

19
00:01:21,740 --> 00:01:23,810
‫Buraya çift eşittir işareti koymanız gerekir.

20
00:01:23,810 --> 00:01:25,460
‫Aksi takdirde bu bir ödevdir.

21
00:01:25,760 --> 00:01:32,500
‫Sonra aşağıya inip bazı destekler yapabiliriz ve buraya bir dönüş koyabiliriz.

22
00:01:32,510 --> 00:01:38,240
‫Yani bunun yapacağı şey, fizik tanıtıcısı için boş bir noktamız varsa, doğrudan geri döner ve

23
00:01:38,240 --> 00:01:43,700
‫işlevin geri kalanını yürütmez, böylece işlevin geri kalanında fizik tanıtıcısını istediğimiz

24
00:01:43,700 --> 00:01:46,910
‫gibi kullanmamızı güvenli hale getirir.

25
00:01:47,330 --> 00:01:49,010
‫Biz de bunu yapacağız.

26
00:01:49,010 --> 00:01:52,010
‫Vurulduğumuz yere doğru gideceğiz.

27
00:01:52,010 --> 00:01:54,380
‫Sanırım artık bu günlük mesajlarına ihtiyacımız yok.

28
00:01:54,380 --> 00:01:56,140
‫Bu yüzden alt ifadeyi kaldıracağım.

29
00:01:56,150 --> 00:02:03,950
‫Temel olarak if deyiminin gövdesindeki her şeyi kaldıracağım ve grabber'ımızı kullanacağız.

30
00:02:03,950 --> 00:02:13,040
‫Bu yüzden fizik kolu ok tutma bileşenini rotasyonlu konumda yapacağız.

31
00:02:13,040 --> 00:02:17,010
‫O zaman ona yakalamaya çalıştığımız bileşeni sağlamalıyız.

32
00:02:17,030 --> 00:02:22,250
‫Bir göz atarsanız, beklediği şeyin ilkel bir bileşen olduğunu görürsünüz.

33
00:02:22,250 --> 00:02:27,280
‫Bakalım sonuçlarımızda böyle bir şey var mı?

34
00:02:27,290 --> 00:02:33,650
‫Bunun için dokümantasyon sayfasına gideceğim ve ilkel bileşeni arayacağım ve get bileşeninin

35
00:02:33,650 --> 00:02:39,290
‫mükemmel bir şekilde vurulan ilkel bileşeni döndüreceğini görebilirsiniz.

36
00:02:39,290 --> 00:02:40,310
‫Tam da ihtiyacımız olan şey.

37
00:02:40,310 --> 00:02:47,150
‫Bu yüzden hit result dot get bileşenini arayacağız ve bu bize ilk argüman için

38
00:02:47,150 --> 00:02:49,670
‫istediğimizi verecek.

39
00:02:50,060 --> 00:02:54,020
‫Şimdi sırada bir kemik için F ismi var.

40
00:02:54,020 --> 00:02:57,440
‫Şimdi aslında hiçbir şeyi belirli bir kemiğinden yakalamak istemiyoruz.

41
00:02:57,440 --> 00:03:01,640
‫Bir iskelet ağımız olsaydı durum böyle olurdu, ancak yok.

42
00:03:01,640 --> 00:03:06,680
‫Statik bir ağımız var, bu yüzden sadece isim kullanıyoruz, alt çizgi yok.

43
00:03:06,770 --> 00:03:11,180
‫Ve genel olarak konuşursak, kemiklerden bahsettiğimiz F isimlerinde bu oldukça sık karşımıza çıkıyor.

44
00:03:11,180 --> 00:03:15,350
‫Eğer hiçbir şey koymak istemiyorsanız, isim ve alt çizgi kullanmazsınız.

45
00:03:15,350 --> 00:03:18,380
‫Şimdi onu yakalayacağımız konuma ihtiyacımız var.

46
00:03:18,380 --> 00:03:20,270
‫Bu konuyu incelediğimizi zaten söylemiştik.

47
00:03:20,270 --> 00:03:29,300
‫Vuruş sonucu nokta çarpma noktası ve ardından rotasyon, yani bu bileşenin mevcut rotasyonu veya aktörün mevcut

48
00:03:29,300 --> 00:03:33,140
‫rotasyonu, hangisini tercih ederseniz.

49
00:03:33,170 --> 00:03:35,390
‫Böylece isabet sonucu bileşenler elde edilir.

50
00:03:35,390 --> 00:03:43,640
‫Bileşen nokta okunu almak için bu isabet sonuçlarını yakalayacağız çünkü bu, bileşen rotasyonunu almak

51
00:03:43,940 --> 00:03:45,830
‫için bir işaretçidir.

52
00:03:45,830 --> 00:03:52,280
‫Şimdi kapanış parantezlerini ayrı bir satıra koyabiliriz ve ifadeyi bitirmek için oraya noktalı virgül

53
00:03:52,280 --> 00:03:56,840
‫koyacağım ve bu bileşenlerimizi yakalamada etkili olacaktır.

54
00:03:56,870 --> 00:04:04,130
‫Şimdi bulmacanın bir sonraki kısmı, yine fizik tutamacını kullanmak istediğimiz tick bileşeninde.

55
00:04:04,130 --> 00:04:10,160
‫Bu yüzden şimdilik kodu kopyalayacağım, üç yere kod kopyalamanın biraz fazla olduğunu ve bunu yeniden

56
00:04:10,160 --> 00:04:15,410
‫kullanmak için bir fonksiyona çekmeyi düşünmek isteyebileceğimizi biliyorum.

57
00:04:15,410 --> 00:04:20,720
‫Ancak giriş bileşeni, fizik tutamacını kullanacağız, bir fizik tutamacına ulaşamazsak

58
00:04:20,720 --> 00:04:22,310
‫erken dönüş yapacağız.

59
00:04:22,430 --> 00:04:26,270
‫Ve sonra yapacağımız şey, bu hedef konumu belirlemeye çalışmak olacak.

60
00:04:26,270 --> 00:04:35,330
‫Bu yüzden fizik yapacağız, ok ayarlı hedef konumunu ve dönüşünü ele alacağız.

61
00:04:35,330 --> 00:04:37,340
‫Bunun hakkında biraz düşünelim.

62
00:04:37,340 --> 00:04:42,290
‫Ne tür bir hedef konum belirlemekle ilgilenebiliriz?

63
00:04:42,290 --> 00:04:46,130
‫Esasen, bitiş noktasında yaptığımızla aynı olacak.

64
00:04:46,130 --> 00:04:53,060
‫Mevcut konumumuzu alacağız, ardından ileri yönde belirli bir mesafe kadar dışarı doğru hareket ettireceğiz.

65
00:04:53,060 --> 00:04:54,590
‫Şimdi, bu yapılandırılabilir olacak.

66
00:04:54,590 --> 00:05:00,230
‫Maksimum yakalama mesafesini kullanabilirsiniz, ancak pratikte bunun çok uzak olduğunu düşünüyorum.

67
00:05:00,230 --> 00:05:06,500
‫Eğer grab a H'ye gidersek, Edit Anywhere adında yeni bir kullanım özelliği oluşturacağız

68
00:05:06,500 --> 00:05:10,220
‫ve bu özellik tutma mesafesi adında bir float olacak.

69
00:05:10,220 --> 00:05:12,530
‫Ve bunu 200'e ayarlayacağım.

70
00:05:12,530 --> 00:05:15,260
‫Yani oyuncuya çok daha yakın olacak.

71
00:05:15,260 --> 00:05:21,410
‫Şimdi, CP'yi yakalarsak, tik fonksiyonumuza gidebilir ve bu hedef konumu oluşturmayı deneyebiliriz.

72
00:05:21,410 --> 00:05:26,240
‫Yani hedef konum adı verilen bir F vektörü olacak.

73
00:05:26,780 --> 00:05:37,310
‫Bunu get bileşeni konumuna, artı get ileri vektörünün tutma mesafesiyle çarpımına eşit olarak

74
00:05:37,310 --> 00:05:40,040
‫ayarlayacağız.

75
00:05:40,280 --> 00:05:42,350
‫O zaman bunu hedef konum olarak kullanabiliriz.

76
00:05:42,350 --> 00:05:47,870
‫Bu ilk argümanımız olacak ve ardından hedef rotasyona ihtiyacımız var.

77
00:05:47,870 --> 00:05:54,860
‫Bunun için mevcut bileşenin rotasyonunu kullanacağım, böylece etrafa bakarken nesneyi

78
00:05:54,860 --> 00:06:03,350
‫görünümümüzle birlikte döndüreceğiz, böylece mevcut grabber sahne bileşeninin rotasyonunu almak için

79
00:06:03,350 --> 00:06:07,370
‫get component rotation'ı yapabiliriz.

80
00:06:07,370 --> 00:06:13,040
‫Şimdi bu satırın sonuna noktalı virgül koyalım ve yeniden derleyip nasıl çalıştığını görelim.

81
00:06:13,040 --> 00:06:17,810
‫Şimdi, başarılı bir şekilde derledikten sonra, gargoyle'u seçelim ve hareket kabiliyetini START'tan değiştirdiğimizden

82
00:06:17,810 --> 00:06:18,900
‫emin olalım.

83
00:06:19,070 --> 00:06:25,070
‫Hareketli seçeneğine bağlı kalın çünkü fiziğe tepki olarak hareket edebilmesine ihtiyacımız var ve fiziği simüle ettiğinden

84
00:06:25,070 --> 00:06:26,300
‫emin olalım.

85
00:06:26,300 --> 00:06:31,880
‫Fizik kategorisine gidelim ve fiziği simüle et düğmesini işaretleyelim.

86
00:06:31,880 --> 00:06:34,910
‫Oynat tuşuna basalım ve açmaya çalışalım.

87
00:06:34,910 --> 00:06:39,380
‫Sanırım şu anda gerçekleşiyor, ancak zeminin içinde sıkışmış gibi görünüyor, bu yüzden bu ideal

88
00:06:39,380 --> 00:06:40,010
‫değil.

89
00:06:40,010 --> 00:06:43,760
‫Zeminin içine sıkışmaması için biraz yukarı kaldırmayı deneyelim.

90
00:06:44,030 --> 00:06:47,840
‫Bırakın bu şekilde yere düşsün ve şimdi onu kaldırmaya çalışın.

91
00:06:47,840 --> 00:06:52,790
‫Şimdi yine zeminin içine sıkışmış gibi görünüyor, o yüzden ikinci kez deneyelim.

92
00:06:52,820 --> 00:06:53,150
‫Tamam.

93
00:06:53,150 --> 00:06:59,660
‫Bu yüzden biraz güvenilmezdir ve bazen hemen yakalarsanız, gargoyle'u gayet

94
00:06:59,660 --> 00:07:03,410
‫iyi alır ve onu bu şekilde alabilirsiniz.

95
00:07:03,410 --> 00:07:10,700
‫Dönüşün doğru olmadığını fark ediyorum ve bunun nedeni fizik bileşenini yakalarken yanlış şeyi kullanmış

96
00:07:10,700 --> 00:07:11,510
‫olmam.

97
00:07:11,510 --> 00:07:15,800
‫Gargoyle'un rotasyonunu aldım ve şimdi bu rotasyonu korumaya çalışıyoruz.

98
00:07:15,800 --> 00:07:23,390
‫Aslında kullanmam gereken şey, tutucunun rotasyonunu seçerken kullandığımız rotasyondu.

99
00:07:23,390 --> 00:07:29,270
‫O halde devam edip bunu değiştirelim ve yeniden derleyelim ve tekrar play tuşuna basıp yakalamaya çalışalım.

100
00:07:29,270 --> 00:07:29,960
‫Al bakalım.

101
00:07:29,990 --> 00:07:35,390
‫Bu sefer onu tuttum ve doğru dönüşü, tam olarak sahip olduğu dönüşü elde ettim.

102
00:07:35,390 --> 00:07:39,350
‫Gördüğünüz gibi bir yaya tutunmuş gibi görünüyor.

103
00:07:39,350 --> 00:07:44,660
‫Eğer onu bir duvara doğru itmeye çalışırsam, elinden geldiğince duvardan geçmemeye çalışıyor.

104
00:07:44,660 --> 00:07:52,100
‫Sonunda duvardan fırlıyor, ama ben onu hareket ettirirken fiziği gözlemlemeye çalışıyor.

105
00:07:52,100 --> 00:07:56,870
‫Şimdi sizi get physics handle adında yeni bir fonksiyon bulmaya davet ediyorum.

106
00:07:56,870 --> 00:07:58,040
‫Özel olacak.

107
00:07:58,070 --> 00:07:59,300
‫Bir U döndürmesi gerekir.

108
00:07:59,300 --> 00:08:04,220
‫Fizik bileşenini ele alır ve sahibini almak ve sınıfa göre bir bileşen bulmak için gereken bu

109
00:08:04,220 --> 00:08:06,080
‫yinelenen kodu kaldırmalıdır.

110
00:08:06,080 --> 00:08:11,420
‫Ayrıca bunu potansiyel olarak sabit hale getirip getiremeyeceğinizi görebilir ve günlüğe kaydedebilirsiniz.

111
00:08:11,420 --> 00:08:16,880
‫Bir fizik kolu bileşenimiz yoksa, bir uyarı günlüğü verin, böylece ortaya çıksın ve yanlış bir şey yaptığımızı

112
00:08:16,880 --> 00:08:18,080
‫bilelim.

113
00:08:18,110 --> 00:08:20,180
‫Videoyu duraklatın ve deneyin.

114
00:08:23,950 --> 00:08:24,250
‫Tamam.

115
00:08:24,250 --> 00:08:24,750
‫Tekrar hoş geldiniz.

116
00:08:24,760 --> 00:08:29,410
‫Her şeyden önce, bunu private bölümüne koyacağımız dosyanın başına gidiyoruz,

117
00:08:29,410 --> 00:08:38,290
‫ancak Q özelliklerinin altında, bir U fizik tutamacı bileşeni döndürmesini sağlayacağım ve buraya bir yıldız işareti koyacağım.

118
00:08:38,320 --> 00:08:46,300
‫Şimdi, bu türü burada başlıkta kullandığımız için, aslında include'umuzu almamız ve grabber'dan kesmemiz

119
00:08:46,300 --> 00:08:47,710
‫gerekiyor.

120
00:08:47,710 --> 00:08:52,960
‫Bu nedenle, fizik tutamacıyla ilgili olarak, onu üretilenin üzerine koyacağımız

121
00:08:52,960 --> 00:08:55,150
‫grabber h'ye koymamız gerekir.

122
00:08:55,400 --> 00:08:58,630
‫H Bu her zaman başlık dosyalarımızdaki son şeydir.

123
00:08:58,630 --> 00:09:01,810
‫Peki neden CP'de de olması gerekmiyor?

124
00:09:01,810 --> 00:09:04,840
‫Çünkü grabber h'yi de dahil ediyoruz.

125
00:09:04,840 --> 00:09:11,890
‫Dolayısıyla, grab a H'ye koyduğumuz herhangi bir şey otomatik olarak C p'de olacaktır, böylece include'i oraya koyabiliriz.

126
00:09:12,370 --> 00:09:20,200
‫Şimdi bu fonksiyonu tanımladığımız yere gidebilir ve ona get physics handle parantez çifti

127
00:09:20,200 --> 00:09:21,790
‫diyebiliriz.

128
00:09:21,790 --> 00:09:29,380
‫Ve bence bu, bu işlevi çağırmak için yakalayıcımızda hiçbir şeyi değiştirmemelidir.

129
00:09:29,470 --> 00:09:37,120
‫Şimdi CP'ye gidelim ve tanımı yapıştıracağım yere gidelim, bir U yakalayıcı iki nokta üst üste

130
00:09:37,120 --> 00:09:45,160
‫yapıştıracağım, önde iki nokta üst üste ve sonra noktalı virgülü kaldırıyorum, bir çift parantez

131
00:09:45,160 --> 00:09:46,270
‫ekliyorum.

132
00:09:46,270 --> 00:09:54,250
‫Yapmak istediğimiz şey, bu get over çizgisinin olduğu yeri almak ve bunu kesip

133
00:09:54,250 --> 00:09:57,040
‫yerine get physics yazmak.

134
00:09:58,140 --> 00:10:00,330
‫Bu şekilde tutun.

135
00:10:00,330 --> 00:10:07,500
‫Ve sonra get physics handle'da, get owner find component by class'ı vb. basitçe döndürebiliriz.

136
00:10:07,500 --> 00:10:12,780
‫ve şimdi bunu tik bileşeninde yaptığımız yerde de değiştirebiliriz, fizik tutamacını

137
00:10:12,780 --> 00:10:13,800
‫tutuyoruz.

138
00:10:13,830 --> 00:10:18,930
‫Bu küçük kod parçasını get physics handle ile değiştirelim.

139
00:10:18,930 --> 00:10:22,920
‫Şimdi bu çok küçük bir kod parçası, neredeyse buna değmez, ancak bu noktada pratik yapmak ve şimdi

140
00:10:22,920 --> 00:10:27,840
‫bazı günlük mesajları ekleyebileceğimiz ve oynamaya başlayabileceğimiz gerçeği için kesinlikle buna değer.

141
00:10:27,840 --> 00:10:33,030
‫Aslında fiziğin işlemesine hiç ihtiyacımız yok, bu yüzden o kodu oradan kaldıracağım.

142
00:10:33,030 --> 00:10:37,350
‫Ancak yapacağım şey bir günlük mesajı eklemek olacak.

143
00:10:37,350 --> 00:10:44,100
‫Bu yüzden sonucumuzu burada saklamak için bir değişken oluşturacağız, çünkü geri dönüp bir günlük mesajı yazdırmaya çalışırsak

144
00:10:44,100 --> 00:10:46,020
‫bu işe yaramayacaktır.

145
00:10:46,020 --> 00:10:51,690
‫Bu yüzden result adında yeni bir fizik tutamacı bileşenimiz olacak çünkü buradan döndüreceğimiz

146
00:10:51,690 --> 00:10:53,520
‫şey bu olacak.

147
00:10:53,850 --> 00:11:04,680
‫Ve eğer sonuç null pointer'a eşitse, o zaman bir uyarı ya da aslında bir hata ile günlüğe kaydetmemiz gerektiğini

148
00:11:04,680 --> 00:11:06,390
‫söyleyeceğiz.

149
00:11:06,390 --> 00:11:14,730
‫Ve bir U fizik kolu bileşeni gerektirdiğini söyleyeceğiz ve ardından if ifadesinden sonra.

150
00:11:14,730 --> 00:11:15,840
‫Yani bu olacak.

151
00:11:15,840 --> 00:11:21,300
‫Null olsun ya da olmasın, sonucu döndüreceğiz.

152
00:11:21,300 --> 00:11:23,880
‫Şimdi devam edip bunu derleyelim ve çalışıp çalışmadığını kontrol edelim.

153
00:11:23,930 --> 00:11:30,990
‫Başarılı olmuş gibi görünüyor ve işe yaradığını görebiliyorum çünkü sahneye sol tıkladığımda mavi

154
00:11:30,990 --> 00:11:38,820
‫veya hata ayıklama küreleri çiziliyor ve bu fizik tutamacı bileşenini tutmasaydık çizilmeyeceklerdi.

155
00:11:38,820 --> 00:11:39,390
‫Harika bir şey.

156
00:11:39,390 --> 00:11:46,050
‫Bu derste, bazen biraz güvenilmez olsa da, yakalayıcımızı kullanarak çirkin heykelimizi

157
00:11:46,050 --> 00:11:48,150
‫yakalayabildik.

158
00:11:48,150 --> 00:11:50,850
‫Ve bunu gelecek derslerde çözeceğiz.

159
00:11:50,850 --> 00:11:52,350
‫Orada görüşürüz.

