﻿1
00:00:04,400 --> 00:00:05,600
‫Cześć i witaj.

2
00:00:05,600 --> 00:00:11,420
‫W tym wykładzie będziemy rysować linie debugowania w naszych scenach, abyśmy mogli zwizualizować, co robi

3
00:00:11,420 --> 00:00:16,730
‫lub co powinien zrobić śledzenie linii, i dowiedzieć się, czy nasze wartości, które

4
00:00:16,730 --> 00:00:18,320
‫obliczamy, są poprawne.

5
00:00:18,470 --> 00:00:20,060
‫Zanurzmy się i spójrzmy.

6
00:00:21,270 --> 00:00:28,200
‫Jak widać, nasza funkcja przemiatania multi by channel wymaga wektora początkowego i końcowego.

7
00:00:28,230 --> 00:00:33,300
‫Teraz może być trochę trudno dowiedzieć się, co się dzieje z tymi funkcjami, kiedy faktycznie ich

8
00:00:33,300 --> 00:00:33,780
‫używamy.

9
00:00:34,230 --> 00:00:39,840
‫Ponieważ jeśli zaczniesz go używać i nie uzyskasz oczekiwanych rezultatów, możesz czasami zastanawiać się, czy

10
00:00:40,650 --> 00:00:43,320
‫w pierwszej kolejności zadałem właściwe pytanie?

11
00:00:43,320 --> 00:00:46,410
‫Czy wysłałem nawet prawidłowy wektor początkowy i końcowy?

12
00:00:46,890 --> 00:00:52,470
‫Cóż, aby to rozgryźć, użyjemy tutaj innej funkcji zwanej linią debuggera rysowania, abyśmy

13
00:00:52,470 --> 00:00:59,040
‫mogli zdecydowanie zobaczyć, gdzie znajdują się wektory początkowy i końcowy, po prostu rysując linię między

14
00:00:59,040 --> 00:00:59,700
‫nimi.

15
00:00:59,970 --> 00:01:06,750
‫A biorąc pod uwagę, że jest to dokładnie ten rodzaj rzeczy, które zostaną zrobione przez nasze przeszukiwanie, to jest

16
00:01:06,750 --> 00:01:11,370
‫to dobry sposób na sprawdzenie, po pierwsze, czy mamy właściwe dane wejściowe.

17
00:01:11,970 --> 00:01:17,460
‫Widać tutaj, że wiersz debugowania rysowania wymaga wielu argumentów, ale nie wszystkie z nich są w

18
00:01:17,460 --> 00:01:18,390
‫rzeczywistości wymagane.

19
00:01:19,110 --> 00:01:22,680
‫Tylko pierwsze trzy, cztery lub pięć.

20
00:01:23,010 --> 00:01:28,190
‫Więc pierwszą rzeczą, która się pojawia, jest nowy świat, w którym wiemy, jak go opanować.

21
00:01:28,200 --> 00:01:33,660
‫Teraz mamy początek linii, która jest w wektorze, mamy linię i znowu, która jest wektorem, potem kolor F, co

22
00:01:34,260 --> 00:01:37,980
‫jest czymś, czego wcześniej nie spotkaliśmy, ale możesz kliknąć aby dowiedzieć się, co

23
00:01:37,980 --> 00:01:38,640
‫to jest.

24
00:01:39,090 --> 00:01:46,350
‫Zasadniczo jest to efektor, który reprezentuje kolory i jest już kilka przydatnych kolorów, które pozwalają

25
00:01:46,350 --> 00:01:52,200
‫nam po prostu powiedzieć: Hej, chcemy naszej czerni, chcemy niebieskiej, zielonej, cokolwiek.

26
00:01:52,200 --> 00:01:57,450
‫Możesz po prostu użyć nazwy koloru, zamiast określać wartości IGP.

27
00:01:57,750 --> 00:02:04,050
‫A ostatnie kilka z nich to to, czy mamy trwałe linie, które mówią nam, czy linia się

28
00:02:04,050 --> 00:02:08,760
‫trzyma, czy też znika na końcu klatki, mówi nam o życiu.

29
00:02:08,760 --> 00:02:14,640
‫Ile więc sekund pozostaje dla priorytetu głębokości i grubości, z których żadnej nie

30
00:02:14,640 --> 00:02:15,960
‫będziemy używać?

31
00:02:16,560 --> 00:02:21,780
‫Inną przydatną informacją na tej stronie dokumentacji jest dołączanie.

32
00:02:21,780 --> 00:02:26,550
‫Jak widać tutaj, aby użyć tej funkcji, musimy użyć pliku nagłówkowego, który ją

33
00:02:26,550 --> 00:02:29,550
‫deklaruje, czyli hash include draw debug helpers.

34
00:02:29,850 --> 00:02:34,260
‫Przejdźmy więc dalej i zdobądźmy to przede wszystkim, ponieważ zapewni to, że autouzupełnianie działa w programie

35
00:02:34,260 --> 00:02:34,980
‫Visual Studio.

36
00:02:34,980 --> 00:02:39,870
‫Jeśli nie masz nagłówka plików, program Visual Studio tak naprawdę nie wie, jak automatycznie uzupełniać

37
00:02:39,870 --> 00:02:40,590
‫te funkcje.

38
00:02:41,010 --> 00:02:47,850
‫Przejdę do komponentu tiku i pozbędę się naszego komunikatu dziennika, aby uzyskać czas

39
00:02:47,850 --> 00:02:48,930
‫na zdrowie.

40
00:02:48,930 --> 00:02:51,300
‫Tak naprawdę pozbędziemy się całego tego czasu.

41
00:02:51,300 --> 00:02:52,530
‫I wiesz co?

42
00:02:52,530 --> 00:02:58,770
‫Po prostu opróżnimy naszą funkcję tik, wszystko po naszym super dwukropku, składniku

43
00:02:58,770 --> 00:03:04,860
‫kleszcza dwukropka, który usuniemy i zaczniemy od wiersza debuggera rysowania.

44
00:03:04,860 --> 00:03:08,880
‫Więc narysuj linię debugowania, a następnie otwórz kilka nawiasów.

45
00:03:09,120 --> 00:03:16,650
‫Naciska spację kontrolną, a następnie możesz zobaczyć parametry, o których właśnie mówiliśmy, i trochę więcej informacji, które nie były

46
00:03:16,650 --> 00:03:19,890
‫tam dostępne, takie jak ich domyślne wartości.

47
00:03:19,890 --> 00:03:24,150
‫Niektóre z nich mają wartości domyślne, szczególnie po stałych liniach.

48
00:03:24,150 --> 00:03:25,500
‫Możesz zobaczyć domyślne wartości false.

49
00:03:25,500 --> 00:03:31,410
‫Więc tak naprawdę nie musisz podawać argumentu, jeśli ma on wartość domyślną, ale możesz zobaczyć, że kolor

50
00:03:31,410 --> 00:03:33,030
‫nie ma wartości domyślnej.

51
00:03:33,030 --> 00:03:35,820
‫Dlatego musimy zapewnić wszystko do tego momentu.

52
00:03:36,690 --> 00:03:39,120
‫Więc pierwszą rzeczą jest świat mało wiele wyzwań.

53
00:03:39,120 --> 00:03:42,660
‫Jak zdobyć i przekazać światu rysowanie linii debugowania.

54
00:03:44,020 --> 00:03:51,280
‫Robisz w ten sposób nawiasy światowe, wtedy będziemy potrzebować początku i końca.

55
00:03:51,340 --> 00:03:56,260
‫W tym celu zamierzam stworzyć dwie zmienne tuż przed narysowaniem linii debugowania i nie zamierzam ich

56
00:03:56,260 --> 00:03:56,890
‫jeszcze wypełniać.

57
00:03:56,890 --> 00:04:07,120
‫Więc początek wektora F i koniec wektora F i to będą nasze następne dwa parametry, początek i koniec.

58
00:04:07,450 --> 00:04:13,930
‫A potem musimy podać kolor, który będzie taki, jak możemy zrobić F kolor, dwukropek, dwukropek, a

59
00:04:13,930 --> 00:04:19,090
‫następnie możemy użyć jednego z tych predefiniowanych kolorów, takiego jak czerwony.

60
00:04:19,570 --> 00:04:20,470
‫To zawsze jest dobre.

61
00:04:20,470 --> 00:04:21,340
‫Możesz to łatwo zobaczyć.

62
00:04:21,700 --> 00:04:26,710
‫A w tym przypadku, ponieważ robimy to w technologii i robimy każdą klatkę

63
00:04:26,710 --> 00:04:31,930
‫wypisując tę linię na ekranie, możemy po prostu użyć trwałych linii równa się false.

64
00:04:31,930 --> 00:04:38,650
‫Więc każdy bilet będzie przerysowywał tę linię debugowania, zamykał nawiasy, a następnie możemy umieścić średnik na

65
00:04:38,920 --> 00:04:40,120
‫końcu linii.

66
00:04:40,360 --> 00:04:43,960
‫Jak więc będą wyglądać te wartości początkowe i końcowe?

67
00:04:44,680 --> 00:04:51,730
‫Cóż, na początku będzie to dosłownie miejsce, w którym chwytamy komponent, ponieważ będzie on przymocowany

68
00:04:51,730 --> 00:04:55,750
‫do aparatu, to dobra lokalizacja na początek.

69
00:04:55,750 --> 00:05:02,920
‫Teraz pamiętaj, że dla tej składowej jest wektor do przodu, dla kamery, dla chwytania, a

70
00:05:02,920 --> 00:05:08,380
‫kierunek do przodu będzie wskazywał z kamery na scenę, zawsze skierowany

71
00:05:08,380 --> 00:05:09,430
‫do przodu.

72
00:05:09,880 --> 00:05:18,940
‫Więc to, co chcemy zrobić, to wziąć nasz wektor początkowy, dodać wektor w przód pomnożony przez pewną wartość.

73
00:05:18,970 --> 00:05:25,120
‫Zasadniczo jest to maksymalna odległość, na jaką będziemy szukać obiektu.

74
00:05:25,120 --> 00:05:32,410
‫Więc możesz mieć jeden, dwa lub trzy metry jako ilość i wtedy otrzymamy wektor końcowy.

75
00:05:32,410 --> 00:05:39,340
‫Więc początek plus wektor przedni chwytaka będzie równy wektorowi końcowemu.

76
00:05:39,610 --> 00:05:45,550
‫Tak więc maksymalna głębia, którą chcemy zajrzeć w scenę, jest czymś, co możemy chcieć skonfigurować.

77
00:05:45,550 --> 00:05:49,170
‫Więc umieścimy to jako nową właściwość na kropki chwytaka.

78
00:05:49,510 --> 00:05:55,120
‫Przejdźmy do sklepu z grabami H i stwórzmy sekcję prywatną, stwórzmy właściwość U,

79
00:05:55,120 --> 00:06:02,980
‫którą będziemy edytować w dowolnym miejscu, a następnie będziemy mieli typ zmiennoprzecinkowy, tak że może to być dowolna liczbowa

80
00:06:02,980 --> 00:06:03,580
‫odległość.

81
00:06:04,210 --> 00:06:12,790
‫Nazwiemy to maksymalną odległością chwytania i domyślnie ustawimy ją na odległość czterech metrów.

82
00:06:12,790 --> 00:06:18,250
‫Być może będzie to musiało wynosić 400, ponieważ domyślną jednostką są centymetry.

83
00:06:18,520 --> 00:06:22,270
‫Więc chciałbym rzucić wyzwanie, abyście obliczyć te początki i końce.

84
00:06:22,270 --> 00:06:30,550
‫Użyj lokalizacji get component w pierwszej kolejności, użyj wektora get forward, aby obliczyć i pomnożyć

85
00:06:30,550 --> 00:06:35,380
‫przez maksymalną odległość chwytania, którą właśnie tam skonfigurowaliśmy.

86
00:06:35,650 --> 00:06:41,410
‫Następnie skompiluj, zagraj i wyrzuć swojemu aktorowi, ponieważ ta linia będzie iść prosto w dół kamery.

87
00:06:41,440 --> 00:06:42,670
‫Możesz go początkowo nie widzieć.

88
00:06:42,850 --> 00:06:43,480
‫Więc wyrzuć.

89
00:06:43,570 --> 00:06:49,150
‫Przyjdź i wyjdź ze swojego ciała i zobacz, jak linia się zatrzymuje, nagraj wideo i spróbuj.

90
00:06:52,710 --> 00:06:53,240
‫Dobra.

91
00:06:53,250 --> 00:06:53,820
‫Witamy spowrotem.

92
00:06:53,850 --> 00:06:58,770
‫Więc wejdźmy do kubka i zacznijmy pisać, co zamierzamy umieścić na początku.

93
00:06:59,460 --> 00:07:05,610
‫Jak powiedzieliśmy, będzie to po prostu lokalizacja pobrania komponentu, a następnie początek.

94
00:07:05,640 --> 00:07:16,650
‫Koniec będzie raczej początkiem plus pobranie pełnego słowa, wektor pomnożony przez maksymalną odległość chwytania, tak jak wstawiamy

95
00:07:16,860 --> 00:07:20,820
‫średnik na końcu tej linii.

96
00:07:21,210 --> 00:07:27,870
‫Zamierzamy skompilować i jeśli skompiluje się pomyślnie, przejdźmy dalej i wciśnijmy play, a

97
00:07:27,870 --> 00:07:32,520
‫następnie umieść mysz w oknie, wciśnij F8, aby wysunąć.

98
00:07:32,940 --> 00:07:36,030
‫A jeśli wyjdziemy poza siebie, widać linię.

99
00:07:36,030 --> 00:07:42,210
‫Najczystszy dzień nadchodzi z miejsca, w którym nasza kamera była na podłodze.

100
00:07:42,210 --> 00:07:47,400
‫I prawdopodobnie, jeśli wyjdę, może nawet będziemy mogli zobaczyć, że trochę wystaje też

101
00:07:47,400 --> 00:07:48,390
‫spod podłogi.

102
00:07:48,660 --> 00:07:49,950
‫To dla ciebie cztery metry.

103
00:07:50,250 --> 00:07:52,260
‫Więc mamy początek, mamy koniec.

104
00:07:52,500 --> 00:07:59,520
‫A gdybyśmy mieli użyć tej linii, byłaby to doskonała linia dla parametrów wejściowych do naszego przeciągnięcia

105
00:07:59,520 --> 00:08:02,280
‫geometrii, której będziemy używać później.

106
00:08:02,520 --> 00:08:03,060
‫Świetna sprawa.

107
00:08:03,060 --> 00:08:06,480
‫Nauczyliśmy się rysować linie debugowania na naszej scenie.

108
00:08:06,750 --> 00:08:11,570
‫Jest to bardzo przydatna umiejętność, z której będziesz często korzystać, gdy nie możesz zrozumieć, dlaczego coś nie działa.

109
00:08:11,580 --> 00:08:12,330
‫Mam nadzieję, że ci się podobało.

110
00:08:12,480 --> 00:08:13,860
‫Do zobaczenia na następnym wykładzie.

