﻿1
00:00:04,110 --> 00:00:05,100
‫Witamy spowrotem.

2
00:00:05,370 --> 00:00:12,150
‫Stworzyliśmy więc już nowy wskaźnik komponentu kapsułki i zadeklarowaliśmy go w przód, więc nie musieliśmy

3
00:00:12,150 --> 00:00:15,390
‫dołączać pliku nagłówkowego do bazy po h.

4
00:00:15,450 --> 00:00:22,140
‫Teraz nadszedł czas na skonstruowanie podobiektu komponentu kapsuły dla naszego podstawowego POM. A kiedy to

5
00:00:22,140 --> 00:00:25,410
‫zrobimy, ustawimy nasz komponent główny jako kapsułę.

6
00:00:26,380 --> 00:00:30,010
‫Jak więc właściwie skonstruować komponent kapsuły?

7
00:00:30,130 --> 00:00:31,750
‫Proces jest bardzo nierealny.

8
00:00:31,750 --> 00:00:37,300
‫Nierealny silnik specyficzny dla silnika stworzył domyślny obiekt podrzędny.

9
00:00:37,450 --> 00:00:39,880
‫To jest funkcja szablonu.

10
00:00:39,910 --> 00:00:46,060
‫Funkcja szablonu dostosowuje się do wybranego typu, dzięki czemu możemy wybrać konkretny typ i utworzyć domyślny.

11
00:00:46,060 --> 00:00:48,460
‫Obiekt podrzędny dostosuje się do tego typu.

12
00:00:48,460 --> 00:00:53,290
‫Przekazujemy typ, który chcemy skonstruować, aby utworzyć domyślny obiekt podrzędny.

13
00:00:53,590 --> 00:00:57,210
‫W przeciwieństwie do zwykłej funkcji ma te nawiasy kątowe.

14
00:00:57,220 --> 00:01:00,400
‫W tym miejscu przekazujemy typ do skonstruowania.

15
00:01:00,430 --> 00:01:04,930
‫Teraz utwórz domyślny obiekt podrzędny również przyjmuje argument w nawiasach.

16
00:01:04,930 --> 00:01:08,140
‫Będzie to nazwa, którą przypisujemy do podobiektu.

17
00:01:08,140 --> 00:01:12,220
‫Różni się to od nazwy zmiennej i jest przekazywana jako literał ciągu.

18
00:01:12,550 --> 00:01:13,960
‫Oto przykład.

19
00:01:13,960 --> 00:01:17,170
‫Załóżmy, że chcemy utworzyć komponent siatki statycznej u.

20
00:01:17,350 --> 00:01:24,700
‫Wzywamy więc create default sub object i kończymy nawiasy kątowe, które przekazujemy w składniku siatki statycznej typu u,

21
00:01:24,700 --> 00:01:27,190
‫aw nawiasach nadajemy mu nazwę.

22
00:01:27,190 --> 00:01:31,300
‫Teraz już wiesz, że w przypadku literałów ciągów znaków powinieneś użyć makra tekstowego.

23
00:01:31,300 --> 00:01:35,200
‫Przekazujemy więc nasz literał ciągu znaków za pomocą makra tekstowego.

24
00:01:35,230 --> 00:01:38,890
‫Jak wspomniałem, jest to nazwa wewnętrzna używana przez Unreal Engine.

25
00:01:38,920 --> 00:01:41,080
‫Istnieją inne funkcje, które tego używają.

26
00:01:41,080 --> 00:01:45,130
‫Na przykład istnieje funkcja o nazwie pobierz domyślny obiekt podrzędny według nazwy.

27
00:01:45,160 --> 00:01:50,890
‫Pobiera podobiekt należący do określonego obiektu i możesz go wywołać przekazując określoną nazwę

28
00:01:50,890 --> 00:01:54,190
‫i będzie szukał podobiektu o wybranej nazwie.

29
00:01:54,370 --> 00:01:59,440
‫Więc ogólne wywołanie funkcji do utworzenia domyślnego podobiektu wygląda tak.

30
00:01:59,620 --> 00:02:03,580
‫Typ znajduje się w nawiasach ostrych, a nazwa w nawiasach.

31
00:02:03,580 --> 00:02:09,460
‫Teraz utwórz domyślny obiekt podrzędny zwraca adres nowo utworzonego komponentu.

32
00:02:09,460 --> 00:02:15,910
‫Tak więc w naszym przypadku, jeśli przekazaliśmy jako typ komponentu use static mesh, otrzymujemy adres komponentu

33
00:02:15,910 --> 00:02:21,970
‫use static mesh i możemy go przechowywać we wskaźniku, ponieważ wskaźniki przechowują adresy rzeczy.

34
00:02:21,970 --> 00:02:26,050
‫Powiedzmy, że tworzymy wskaźnik użycia statycznego komponentu siatki o nazwie siatka.

35
00:02:26,050 --> 00:02:32,500
‫Następnie możemy wziąć ten adres zwrócony przez utworzenie domyślnego obiektu podrzędnego i zapisać ten adres w naszym wskaźniku

36
00:02:32,500 --> 00:02:33,220
‫siatki.

37
00:02:33,700 --> 00:02:39,550
‫Teraz, kiedy już wiesz, jak działa tworzenie domyślnego podobiektu, użyjesz tego do skonstruowania

38
00:02:39,550 --> 00:02:40,960
‫obiektu komponentu kapsuły.

39
00:02:40,990 --> 00:02:47,230
‫Zrobisz to w podstawowym konstruktorze PON, użyj Utwórz domyślny obiekt podrzędny, aby skonstruować przejście

40
00:02:47,230 --> 00:02:54,310
‫komponentu kapsuły w twoim komponencie kapsuły i nawiasy kątowe jako typ do skonstruowania i przekazania w

41
00:02:54,310 --> 00:02:58,540
‫zderzaczu kapsułek zawiniętym w makro tekstowe w nawiasach.

42
00:02:58,900 --> 00:03:03,880
‫Zatrzymaj wideo i dodaj to teraz do podstawy CP w konstruktorze.

43
00:03:07,720 --> 00:03:08,170
‫Dobra.

44
00:03:08,170 --> 00:03:09,430
‫Więc jesteśmy tutaj w Bass Pond.

45
00:03:09,640 --> 00:03:13,270
‫CP i chcielibyśmy zbudować komponent kapsuły.

46
00:03:13,270 --> 00:03:21,400
‫Więc weźmiemy naszą zmienną kapsułową comp i przypiszemy wartość zwróconą przez utworzenie domyślnego

47
00:03:21,400 --> 00:03:22,150
‫podobiektu.

48
00:03:22,510 --> 00:03:29,620
‫Teraz, jak widzieliśmy, ta funkcja szablonu ma nawiasy kątowe i nawiasy, i widzieliśmy, że typ

49
00:03:29,620 --> 00:03:34,480
‫znajduje się w nawiasach ostrych, użyjemy komponentu kapsuły U.

50
00:03:34,570 --> 00:03:41,320
‫W nawiasach użyjemy makra tekstowego i nazwiemy ten zderzacz kapsuł.

51
00:03:42,160 --> 00:03:43,210
‫I tam idziemy.

52
00:03:43,390 --> 00:03:48,870
‫Teraz używamy komponentu kapsuły do skonstruowania obiektu tego typu.

53
00:03:48,880 --> 00:03:52,450
‫A kiedy używamy typu, dołączamy jego plik nagłówkowy.

54
00:03:52,960 --> 00:03:56,290
‫Zobaczmy teraz, co się stanie, gdy spróbujemy skompilować.

55
00:03:56,320 --> 00:04:00,560
‫Teraz znowu możesz użyć kodowania na żywo lub możesz skompilować tutaj w kodzie VZ.

56
00:04:00,580 --> 00:04:03,820
‫W tej sekcji będę kompilował kod VTS.

57
00:04:03,820 --> 00:04:09,130
‫Więc możesz po prostu wiedzieć, że kiedy kompiluję, zamknąłem edytor Unreal Engine i po prostu kompiluję

58
00:04:09,130 --> 00:04:09,550
‫stąd.

59
00:04:09,550 --> 00:04:14,770
‫Chciałbym zobaczyć komunikat o błędzie tutaj i kod VTS teraz próbujący skompilować to tutaj.

60
00:04:14,770 --> 00:04:17,950
‫Otrzymujemy inny błąd niż ten, który widzieliśmy w poprzednim filmie.

61
00:04:17,980 --> 00:04:21,430
‫Użycie niezdefiniowanego składnika kapsułki typu U.

62
00:04:21,610 --> 00:04:27,970
‫Tym razem próbujemy użyć typu komponentu kapsułki U w pliku CPP do skonstruowania obiektu.

63
00:04:28,180 --> 00:04:33,190
‫Oto kod błędu, jeśli chcesz wyszukać w Google ten konkretny rodzaj błędu, aby uzyskać więcej informacji.

64
00:04:33,610 --> 00:04:38,470
‫Tak więc teraz widzieliśmy dwa różne typy błędów kompilacji w tej części kursu i znamy

65
00:04:38,470 --> 00:04:40,150
‫przyczynę tego konkretnego błędu.

66
00:04:40,150 --> 00:04:42,700
‫Nie dołączyliśmy Ci składnika kapsułki.

67
00:04:42,820 --> 00:04:49,330
‫Teraz tutaj jest komponent kapsuły U w dokumentacji Unreal Engine, a oto dodatek, którego potrzebujemy dla

68
00:04:49,330 --> 00:04:50,530
‫tego typu.

69
00:04:50,530 --> 00:04:56,710
‫Więc zamierzam to skopiować i wkleić tutaj na górze Base Pond CPP.

70
00:04:56,740 --> 00:05:02,890
‫Teraz, jeśli spróbuję ponownie skompilować, kompilacja się powiodła, nie widzimy błędów.

71
00:05:03,100 --> 00:05:04,870
‫Zamierzam teraz zamknąć terminal.

72
00:05:04,990 --> 00:05:07,510
‫Stworzyliśmy więc składnik kapsułki.

73
00:05:07,540 --> 00:05:11,920
‫Następną rzeczą, którą chciałbym zrobić, jest upewnienie się, że komponent kapsułki jest korzeniem.

74
00:05:11,950 --> 00:05:18,890
‫Teraz zobaczyliśmy, jak przypisać komponent jako główny i plany, klikając i przeciągając w C++.

75
00:05:18,910 --> 00:05:20,430
‫To także całkiem proste.

76
00:05:20,440 --> 00:05:26,590
‫Po prostu bierzemy tę zmienną głównego komponentu i przypisujemy jej wartość kapsułki comp.

77
00:05:26,800 --> 00:05:30,520
‫Teraz określiliśmy, że komponent kapsuły powinien być komponentem głównym.

78
00:05:30,790 --> 00:05:32,290
‫Skompilujmy to jeszcze raz.

79
00:05:32,470 --> 00:05:36,910
‫A teraz, po udanej kompilacji, chciałbym wrócić do edytora.

80
00:05:37,000 --> 00:05:37,350
‫Dobra.

81
00:05:37,360 --> 00:05:42,570
‫Otworzyłem edytor i zamierzam wziąć moją podstawową -- klasę C++ i przeciągnąć jedną.

82
00:05:42,580 --> 00:05:44,100
‫A teraz sprawdź to.

83
00:05:44,110 --> 00:05:46,330
‫Widzimy składnik kapsułki.

84
00:05:46,420 --> 00:05:48,260
‫Teraz na świecie, liniowiec.

85
00:05:48,280 --> 00:05:53,350
‫Pokazuje, że baza -- którą właśnie przeciągnąłem, jest teraz zaznaczona tuż nad wyszukiwaniem w panelu

86
00:05:53,350 --> 00:05:53,870
‫szczegółów.

87
00:05:53,890 --> 00:05:58,660
‫Mogę przeciągnąć to w dół i zobaczyć wszystkie komponenty na tej podstawie --.

88
00:05:58,660 --> 00:06:03,430
‫A wszystko, co widzimy, to ta kapsuła, ponieważ jest to jedyny jej komponent.

89
00:06:03,520 --> 00:06:09,490
‫Dodaliśmy więc teraz nasz komponent kapsuły i widzimy tego rezultat, gdy faktycznie dodamy instancję

90
00:06:09,490 --> 00:06:13,120
‫tej klasy do świata w edytorze Unreal Engine.

91
00:06:13,760 --> 00:06:19,970
‫Podsumowując, nauczyliśmy się budować komponent kapsuły z C++ i uczyniliśmy go głównym

92
00:06:19,970 --> 00:06:25,070
‫komponentem, przypisując wartość zmiennej root component do kapsułka comp.

93
00:06:25,100 --> 00:06:29,600
‫W następnym filmie dodamy więcej komponentów do naszej bazy w klasie C++.

94
00:06:29,810 --> 00:06:30,770
‫Zobaczymy się wtedy.

