﻿1
00:00:04,310 --> 00:00:05,000
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,010 --> 00:00:10,220
‫ในการบรรยายนี้ เราจะพิจารณาถึงการเคลื่อนไหวของตัวละครของเรา เพื่อที่เราจะสามารถก้าวไปข้างหน้าการต่อสู้และมองไปรอบ

3
00:00:10,220 --> 00:00:13,310
‫ๆ โลกของเรา

4
00:00:13,310 --> 00:00:17,960
‫ความคลาสสิกของการเคลื่อนที่ไปรอบๆ ในเกมยิงมุมมองบุคคลที่หนึ่งหรือบุคคลที่สาม

5
00:00:17,960 --> 00:00:19,400
‫มาดูวิธีทำกันเลยดีกว่า

6
00:00:20,390 --> 00:00:26,420
‫ดังนั้นการพยายามทำให้การเคลื่อนไหวของตัวละครทำงานต่อไป อย่างแรกเลยคือเราต้องการผูกข้อมูลบางอย่างเข้าด้วยกัน

7
00:00:26,420 --> 00:00:32,750
‫แต่เราจะรู้ว่าต้องการทราบว่าจะผูกข้อมูลเข้ากับอะไร

8
00:00:32,930 --> 00:00:38,060
‫โชคดีที่เมื่อพูดถึงตัวละคร มีหลายสิ่งหลายอย่างที่ทำให้เราเข้าใจง่ายขึ้น

9
00:00:38,060 --> 00:00:44,390
‫ท้ายที่สุดแล้ว Unreal เป็นเอ็นจิ้นที่ปรับแต่งมาเพื่อการทำสิ่งต่าง ๆ เช่น เกมยิง เกมตัวละคร

10
00:00:44,390 --> 00:00:52,100
‫และมาดูฟังก์ชันการเคลื่อนไหวบางอย่างที่คลาสนักแสดงของตัวละครได้จัดเตรียมไว้ให้เราแล้ว ไม่ใช่แค่องค์ประกอบการเคลื่อนไหวของตัวละครเท่านั้น

11
00:00:52,100 --> 00:00:57,650
‫แต่ยังรวมถึงคลาสนักแสดงของตัวละครอีกด้วย และมักจะส่งต่อสิ่งนี้ไปยังการเคลื่อนไหวของตัวละคร

12
00:00:57,650 --> 00:01:02,480
‫ส่วนประกอบแต่ไม่จำเป็นต้องเป็นเช่นนั้น

13
00:01:02,480 --> 00:01:04,940
‫มาดูกันว่าเราจะจัดการกับการเคลื่อนไหวใด

14
00:01:04,940 --> 00:01:08,480
‫ประการแรกจะมีการเพิ่มข้อมูลการเคลื่อนไหว

15
00:01:08,510 --> 00:01:12,830
‫เพิ่มอินพุตการเคลื่อนไหวโดยพื้นฐานแล้วใช้เวกเตอร์และบอกคุณว่าคุณจะเคลื่อนที่ไปในทิศทางใด

16
00:01:12,830 --> 00:01:14,660
‫ดังนั้นหากเป็นเวกเตอร์ไปข้างหน้า คุณก็ก้าวไปข้างหน้า

17
00:01:14,660 --> 00:01:16,250
‫ถ้าเป็นเวกเตอร์ถอยหลัง คุณก็ถอยหลัง

18
00:01:16,250 --> 00:01:18,650
‫หากเป็นเวกเตอร์ที่ถูกต้อง คุณก็เลื่อนไปทางขวาไปเรื่อยๆ

19
00:01:18,650 --> 00:01:22,580
‫และขนาดของเวกเตอร์จะเป็นตัวกำหนดว่าคุณจะเคลื่อนที่ไปในทิศทางนั้นเร็วแค่ไหน

20
00:01:23,000 --> 00:01:27,500
‫สิ่งต่อไปคือเราได้เพิ่มอินพุตระดับเสียงของตัวควบคุม

21
00:01:27,500 --> 00:01:32,090
‫นั่นคือการมองขึ้นและลง ซึ่งเห็นได้ชัดว่ามีประโยชน์มาก

22
00:01:32,090 --> 00:01:35,540
‫เมื่อคุณได้เมาส์แล้ว คุณต้องการมองขึ้นและลงโดยเลื่อนเมาส์ขึ้นและลง

23
00:01:35,960 --> 00:01:39,980
‫จากนั้นมีการเพิ่มตัวควบคุม อินพุตของคุณซึ่งไปทางซ้ายและขวา

24
00:01:40,400 --> 00:01:45,080
‫และในที่สุดก็มีฟังก์ชั่นกระโดดซึ่งบางทีคุณอาจกดสเปซบาร์แล้วกระโดด

25
00:01:45,320 --> 00:01:55,850
‫ดังนั้นเมื่อคำนึงถึงสิ่งเหล่านี้ สิ่งที่เราต้องการที่จะดำเนินการต่อไปคือสร้างการเชื่อมโยงบางอย่างในคลาสนักแสดงตัวละครของเราที่ผูกข้อมูลบางอย่างไว้

26
00:01:55,860 --> 00:02:01,700
‫ดังนั้นอินพุตบางส่วนจากแป้นพิมพ์ เมาส์ ตัวควบคุมของคุณไปยังฟังก์ชันเหล่านี้

27
00:02:01,700 --> 00:02:05,510
‫ดังนั้นเราจะทำบางอย่าง แล้วเราจะทำสิ่งที่ท้าทายเพื่อทำส่วนที่เหลือ

28
00:02:05,810 --> 00:02:11,120
‫มาดูโค้ดของ Visual Studio กัน และฉันอยู่ในตัวละครที่เป็นนักกีฬา

29
00:02:11,450 --> 00:02:18,560
‫H และเราสังเกตเห็นว่าเราได้ตั้งค่าฟังก์ชั่นองค์ประกอบอินพุตของผู้เล่นที่นี่แล้ว

30
00:02:18,560 --> 00:02:20,900
‫นี่คือจุดที่เราต้องผูกข้อมูลของเรา

31
00:02:21,020 --> 00:02:24,560
‫จะกด F12 เพื่อไปที่ C++

32
00:02:25,750 --> 00:02:31,900
‫ฉันจะกด Alt oh เพื่อไปที่ C ++ และค้นหาว่าเราได้ตั้งค่าไว้ที่ไหน

33
00:02:31,900 --> 00:02:36,570
‫สิ่งแรกคือมันให้องค์ประกอบอินพุตนี้แก่เรา ที่เราต้องการผูกด้วย

34
00:02:36,580 --> 00:02:38,410
‫ถ้าคุณจำได้ นี่คือวิธีที่เราทำ

35
00:02:38,410 --> 00:02:45,490
‫เรามีองค์ประกอบอินพุตของผู้เล่น เราใช้ตัวดำเนินการลูกศร จากนั้นเราจะทำฟังก์ชันผูกที่นี่

36
00:02:45,490 --> 00:03:01,300
‫ดังนั้นจึงอาจเป็นการผูกการเข้าถึงหรือจะเป็นการผูกขึ้นอยู่กับว่าเป็นการกระทำที่ไม่ต่อเนื่องเช่นการกระโดดหรือว่าเป็นการกระทำที่มีค่าเช่นการมองขึ้นและลงหรือการเคลื่อนไหว

37
00:03:01,660 --> 00:03:08,860
‫ตอนนี้ แม้ว่าเราจะเคลื่อนไหวด้วยกุญแจ เราก็ยังคงผูกมันไว้โดยใช้แกน

38
00:03:08,860 --> 00:03:14,230
‫ดังนั้นฉันจะพิมพ์ผิดเล็กน้อยสำหรับส่วนแรกของวิดีโอนี้

39
00:03:14,230 --> 00:03:19,990
‫ฉันจะแก้ไขในภายหลัง แต่ไปข้างหน้าและใช้แกนผูกแทนการผูกที่นี่

40
00:03:20,840 --> 00:03:29,950
‫ดังนั้น ในการถอยหลังไปอีกขั้น เราต้องไปข้างหน้าและตั้งค่าการดำเนินการและแกนเหล่านี้ในการตั้งค่าโครงการของเรา

41
00:03:29,960 --> 00:03:32,120
‫กลับไปที่ Unreal กัน

42
00:03:32,150 --> 00:03:38,150
‫ไปที่การตั้งค่า การตั้งค่าโปรเจ็กต์ จากนั้นฉันจะเทียบท่านี้เพื่อให้เรามองเห็นได้ชัดเจนมาก

43
00:03:38,240 --> 00:03:42,020
‫และเราจะไปที่ส่วนอินพุต

44
00:03:42,020 --> 00:03:48,770
‫ดังนั้นอินพุตของเครื่องยนต์และตั้งค่าการแมปแกนและการแมปการดำเนินการบางอย่าง

45
00:03:50,590 --> 00:03:59,290
‫ดังนั้นสิ่งที่ฉันจะจัดการทันทีก็คือการแมปแกนที่เราจะต้องก้าวไปข้างหน้าอย่างแรกเลย

46
00:04:00,230 --> 00:04:04,490
‫และเราจะไปดูกันด้วย

47
00:04:04,520 --> 00:04:11,630
‫ทีนี้ จำไว้ว่า เราไม่มีทางเดินหน้าและถอยหลัง เพราะเราสามารถทำได้ด้วยสเกลติดลบ

48
00:04:11,780 --> 00:04:17,060
‫ตัวอย่างเช่น ฉันต้องการตั้งค่า W Quay เพื่อก้าวไปข้างหน้า

49
00:04:17,060 --> 00:04:18,650
‫นั่นคือระดับหนึ่ง

50
00:04:18,650 --> 00:04:25,940
‫แต่ถ้าฉันต้องการให้คีย์ se เป็นการเคลื่อนที่ของฉัน ฉันยังคงสามารถใช้การเดินหน้าต่อไปได้ แต่ให้มาตราส่วนเท่ากับลบหนึ่ง

51
00:04:25,940 --> 00:04:27,240
‫เพียงเตือนความจำอย่างรวดเร็วสำหรับคุณ

52
00:04:27,260 --> 00:04:28,430
‫เช่นเดียวกับการมองขึ้นไป

53
00:04:28,430 --> 00:04:30,020
‫ฉันจะใช้เมาส์เพื่อสิ่งนี้

54
00:04:30,020 --> 00:04:33,110
‫เราจะพูดถึงอินพุตของคอนโทรลเลอร์ในการบรรยายครั้งต่อไป

55
00:04:33,200 --> 00:04:35,620
‫เราจะใช้เมาส์ y

56
00:04:35,630 --> 00:04:41,030
‫ทีนี้ จำไว้นะ y คืออันที่ขึ้นๆ ลงๆ มากกว่าซ้ายและขวา เพราะมันสูงกว่านิดหน่อย

57
00:04:41,030 --> 00:04:42,080
‫ใช่ไหม?

58
00:04:42,080 --> 00:04:44,570
‫A Y เป็นตัวอักษรที่สูงกว่า X เล็กน้อย

59
00:04:44,570 --> 00:04:45,950
‫นั่นเป็นวิธีที่ฉันจำได้

60
00:04:45,950 --> 00:04:53,090
‫ดังนั้น เมาส์ Y จึงขึ้นและลง จากนั้นเราจะต้องปรับแต่งด้วยมาตราส่วน ดูว่ามันไปในทิศทางที่ถูกต้องหรือไม่

61
00:04:53,090 --> 00:04:58,070
‫แต่โดยพื้นฐานแล้ว นี่จะให้ค่าลบแก่เราถ้าเรากำลังลดลง และค่าบวกถ้าเรากำลังขึ้น

62
00:04:58,070 --> 00:05:02,900
‫ดังนั้นเราอาจต้องปรับแต่งด้วยการค้นหาเพื่อดูว่าจะไปในทิศทางที่ถูกต้องหรือไม่

63
00:05:02,900 --> 00:05:09,800
‫แต่คุณคงเข้าใจแล้วว่าเราสามารถสลับมาตราส่วนได้หรือไม่ก็ได้ ขึ้นอยู่กับประเภทของอินพุตที่มาที่นี่

64
00:05:10,950 --> 00:05:14,390
‫เมื่อเราได้ชื่อแกนแล้ว เราก็สามารถกลับไปที่ C++ ได้

65
00:05:14,400 --> 00:05:19,590
‫เราจะผูกมันโดยใช้แมโครข้อความและข้อความของชื่อแกน

66
00:05:19,710 --> 00:05:25,180
‫จากนั้นเราต้องบอกว่าเราจะเรียกใช้ฟังก์ชันนี้กับใครและจะเรียกใช้ฟังก์ชันใด

67
00:05:25,200 --> 00:05:31,290
‫ขณะนี้เราไม่มีฟังก์ชันที่เราต้องการเรียกใช้ ดังนั้นฉันจะไปสร้างฟังก์ชันส่วนตัวใหม่ในไฟล์ส่วนหัว

68
00:05:31,290 --> 00:05:35,160
‫C++

69
00:05:35,280 --> 00:05:41,220
‫และมันจะเป็นฟังก์ชันโมฆะที่เรียกว่าก้าวไปข้างหน้า

70
00:05:42,320 --> 00:05:46,130
‫และมันจะดึงทุ่น, ซึ่งก็คือค่าแกน

71
00:05:49,380 --> 00:05:50,880
‫ปิดท้ายด้วยเซมิโคลอน

72
00:05:50,880 --> 00:05:55,320
‫และฉันมีเคล็ดลับเล็ก ๆ น้อย ๆ ส่วนขยายเล็ก ๆ น้อย ๆ ที่นี่ที่ช่วยให้ฉันใช้งานสิ่งเหล่านี้ได้เร็วขึ้นเล็กน้อยโดยทำการควบคุม

73
00:05:55,320 --> 00:05:58,380
‫shift p และ

74
00:06:00,460 --> 00:06:06,640
‫ถ้าฉันพิมพ์ create การนำไปใช้ มันจะดำเนินต่อไปและสร้างการนำไปใช้งานนั้นให้ฉันในไฟล์

75
00:06:06,640 --> 00:06:06,940
‫C++

76
00:06:06,940 --> 00:06:08,060
‫ดีและง่ายจริงๆ

77
00:06:08,080 --> 00:06:09,460
‫ชื่อของนามสกุลนั้น

78
00:06:09,460 --> 00:06:14,980
‫ถ้าฉันข้ามไป ฉันมักจะลืมชื่อนามสกุลของตัวเอง ดังนั้นฉันจะไปดูว่ามันคืออะไร

79
00:06:15,820 --> 00:06:18,310
‫ใช่ มันดูงี่เง่า ผู้ช่วย C++

80
00:06:18,310 --> 00:06:24,160
‫หากคุณไปข้างหน้าและติดตั้งโค้ดนี้สำหรับโค้ด VTS ของคุณ มันจะช่วยให้คุณทำสิ่งนั้นได้

81
00:06:24,160 --> 00:06:25,090
‫ซึ่งดีมาก

82
00:06:25,090 --> 00:06:25,810
‫มีประโยชน์มาก

83
00:06:27,490 --> 00:06:30,060
‫นี่คือฟังก์ชันที่เราอยากตั้งค่าให้เรียกใช้

84
00:06:30,070 --> 00:06:32,850
‫ก่อนอื่น เราพูดแบบนี้ นี่คือเป้าหมาย

85
00:06:32,860 --> 00:06:36,390
‫ออบเจ็กต์ปัจจุบันเป็นเป้าหมายสำหรับฟังก์ชันนี้

86
00:06:36,400 --> 00:06:42,850
‫จากนั้นเราจึงนำประเด็นนี้ไปที่ปัญหาฟังก์ชันที่มีคุณสมบัติครบถ้วน อักขระ เครื่องหมายโคลอน เครื่องหมายโคลอน

87
00:06:42,850 --> 00:06:46,990
‫ไปข้างหน้า และนั่นน่าจะผูกมัดเราไว้กับฟังก์ชันนี้

88
00:06:47,530 --> 00:06:54,460
‫และสุดท้าย สิ่งที่เราต้องทำคือส่งค่าแกนนั้นไปยังฟังก์ชันที่เราต้องการเรียกจริงๆ

89
00:06:54,460 --> 00:06:57,430
‫ซึ่งเป็นฟังก์ชันหลัก

90
00:06:57,430 --> 00:06:58,600
‫เราเลยไม่ต้องทำอะไร

91
00:06:58,600 --> 00:07:01,660
‫เราทำได้แค่เคลื่อนไหวโฆษณา

92
00:07:12,480 --> 00:07:13,680
‫อินพุตเช่นนั้น

93
00:07:14,320 --> 00:07:20,640
‫เนื่องจากนี่คือวิธีเดินหน้า เราจึงต้องการเวกเตอร์ไปข้างหน้าของตัวแสดง

94
00:07:20,650 --> 00:07:28,990
‫วิธีที่เราทำคือ เราสามารถหาเวกเตอร์ตัวแสดงไปข้างหน้าได้ แล้วเราต้องการให้มันส่งต่อในจำนวนที่ค่าการเข้าถึงของเราให้มา

95
00:07:28,990 --> 00:07:34,090
‫เราจะได้คูณด้วยค่าแกน

96
00:07:34,420 --> 00:07:36,340
‫และนั่นก็จะให้ผลลัพธ์ที่ถูกต้องแก่เรา

97
00:07:36,340 --> 00:07:39,370
‫เราก็จะได้เวกเตอร์ไปข้างหน้าคูณด้วยค่าแกน

98
00:07:39,370 --> 00:07:44,110
‫หากเป็นหนึ่ง เราก็ไปข้างหน้า หากเป็นลบหนึ่ง เวกเตอร์ไปข้างหน้าจะกลายเป็นเวกเตอร์ย้อนกลับ

99
00:07:44,110 --> 00:07:46,240
‫และเราจะถอยหลังด้วยฟังก์ชันเดียวนี้

100
00:07:46,240 --> 00:07:49,000
‫นั่นทำให้เราก้าวไปข้างหน้า

101
00:07:49,000 --> 00:07:49,530
‫ยอดเยี่ยม.

102
00:07:49,540 --> 00:07:53,470
‫สิ่งต่อไปคือการผูกมัดให้เราเงยหน้าขึ้นมอง

103
00:07:53,470 --> 00:07:54,790
‫เลยไปลอกเลียนแบบกัน

104
00:07:54,790 --> 00:07:58,480
‫ฉันชอบคัดลอกการอ้างอิงสตริงเหล่านี้เสมอเพื่อไม่ให้เกิดข้อผิดพลาด

105
00:07:58,930 --> 00:08:03,160
‫เงยหน้าขึ้นมองแทนที่จะผูกมัดเพื่อก้าวไปข้างหน้า ให้กลับไปที่ส่วนหัวของไฟล์แล้วสร้างสิ่งใหม่

106
00:08:03,160 --> 00:08:07,960
‫มันจะมองขึ้นไปอีกครั้ง ค่าแกนทศนิยม

107
00:08:09,080 --> 00:08:09,770
‫เช่นนั้น

108
00:08:10,600 --> 00:08:15,940
‫และถ้าฉันควบคุม shift P และสร้างการใช้งาน ไปข้างหน้าและช่วยฉันประหยัดเวลาได้นิดหน่อย

109
00:08:16,150 --> 00:08:20,980
‫และคราวนี้แทนที่จะเพิ่มอินพุตการเคลื่อนไหว เราต้องการใช้ฟังก์ชันอื่นๆ

110
00:08:20,980 --> 00:08:22,330
‫ที่เรามีอยู่

111
00:08:27,060 --> 00:08:32,580
‫กล่าวคืออินพุตระดับเสียงของตัวควบคุมโฆษณาเพราะเราต้องการเพิ่มระดับเสียงโดยพื้นฐาน

112
00:08:32,730 --> 00:08:37,080
‫คราวนี้เราสามารถทำ ad controller ได้

113
00:08:38,860 --> 00:08:42,550
‫อินพุตระดับเสียงและส่งผ่านค่าแกนโดยตรง

114
00:08:42,580 --> 00:08:43,390
‫ตอนนี้.

115
00:08:43,420 --> 00:08:49,980
‫ตอนนี้เป็นโปรแกรมเมอร์ C ++ ที่มีประสบการณ์มากขึ้นในหมู่คุณอาจพูดว่า เฮ้ ฟังก์ชันนี้โดยพื้นฐานแล้วไม่ทำอะไรเลย

116
00:08:49,990 --> 00:08:53,650
‫เป็นเพียงการเรียกใช้ฟังก์ชันอื่นด้วยพารามิเตอร์เดียวกัน

117
00:08:53,650 --> 00:08:55,540
‫เลยไม่ค่อยได้ทำอะไรมาก

118
00:08:55,540 --> 00:08:56,650
‫และคุณจะพูดถูก

119
00:08:56,650 --> 00:09:06,700
‫สิ่งที่เราทำได้คือเราสามารถค้นหาตัวละครเกมยิง เพื่อเรียกฟังก์ชันที่กำหนดไว้ในคลาสนี้ว่าตัวละครเกมยิง

120
00:09:07,270 --> 00:09:14,200
‫หรือเราสามารถพูดได้ว่า มีการเพิ่มอินพุตระยะพิทช์ควบคุมที่เราเรียกได้โดยตรง ใช่ไหม

121
00:09:14,200 --> 00:09:21,910
‫ดังนั้นถ้าเราใช้ F12 เพื่อค้นหาตำแหน่งที่กำหนดไว้ และคุณไปที่นั้น คุณจะเห็นว่าถูกกำหนดไว้ใน

122
00:09:21,910 --> 00:09:24,850
‫เบี้ย h จริงๆ

123
00:09:24,850 --> 00:09:30,340
‫ดังนั้นหากคุณเลื่อนขึ้น คุณจะเห็นว่าเราจะพบชั้นเรียนใดที่หนึ่งที่นี่

124
00:09:30,340 --> 00:09:34,690
‫ลองหาพื้นที่ในชั้นเรียนดูก็ได้

125
00:09:35,430 --> 00:09:38,460
‫และที่นี่เราได้จำนำเป็นคลาส

126
00:09:38,460 --> 00:09:44,820
‫กลับไปที่ตัวละครเกมยิงกัน และสิ่งที่เราลองทำได้ และทำให้สั้นลงอีกหน่อยโดยบอกว่า

127
00:09:44,850 --> 00:09:53,910
‫เรามาทำเครื่องหมายโคลอน ทวิภาค เพิ่มอินพุต pitch ของคอนโทรลเลอร์ เพื่อเรียกฟังก์ชันพาเรนต์นั้นโดยตรงโดยอัตโนมัติ

128
00:09:53,910 --> 00:09:59,100
‫แทนที่จะต้อง ผ่านฟังก์ชั่นของเราเอง

129
00:09:59,100 --> 00:10:02,700
‫นี่เป็นวิธีที่ถูกต้องเช่นกัน แต่ก็ไม่จำเป็น

130
00:10:02,700 --> 00:10:08,070
‫ดังนั้นฉันจะแสดงความคิดเห็นเพื่อให้คุณสามารถอ้างอิงและดูว่าคุณต้องการทำแบบนั้นหรือไม่

131
00:10:08,190 --> 00:10:12,120
‫แต่ฉันอยากจะแนะนำให้ทำในเส้นทางที่สั้นกว่าเล็กน้อยเช่นนั้น

132
00:10:30,820 --> 00:10:35,720
‫ฉันและในการพยายามคอมไพล์มัน ฉันสังเกตว่าแทนที่จะเรียกตามหลัง Axis อย่างที่ฉันต้องการจะทำ

133
00:10:35,720 --> 00:10:38,240
‫ฉันได้ดำเนินการผูกมัด

134
00:10:38,240 --> 00:10:41,000
‫ดังนั้นคุณอาจกรีดร้องที่หน้าจอตลอดเวลา

135
00:10:41,000 --> 00:10:42,530
‫ไปข้างหน้าและสร้างมันอีกครั้ง

136
00:10:42,530 --> 00:10:46,580
‫อีกอย่าง ฉันกำลังทำแบบนั้นด้วยปุ่มควบคุม B และเลือกตัวเลือกบิลด์

137
00:10:46,580 --> 00:10:55,940
‫นั่นคือตัวแก้ไขเกมยิงง่ายๆ ที่ชนะบิลด์การพัฒนา 64 ซึ่งเป็นวิธีที่เร็วกว่าสำหรับฉันมากกว่าการกดปุ่มคอมไพล์

138
00:10:57,140 --> 00:10:59,390
‫ฉันจะดูและฉันไม่สามารถรับไวยากรณ์ของฉันได้ในวันนี้

139
00:10:59,390 --> 00:11:08,540
‫แน่นอน เราจำเป็นต้องใช้เครื่องหมายและหน้าฟังก์ชันนี้เพื่อบอกว่าเราต้องการรับตัวชี้

140
00:11:09,750 --> 00:11:14,610
‫เราต้องการใช้เครื่องหมายและข้างหน้าฟังก์ชันเหล่านี้เพื่อให้มีรูปแบบที่ถูกต้องที่นี่

141
00:11:21,950 --> 00:11:22,130
‫ตกลง.

142
00:11:22,130 --> 00:11:28,430
‫ดังนั้น หลังจากที่ฉันแก้ไขข้อผิดพลาดทั่วไปสองข้อนั้น อย่างหนึ่งคือการที่ฉันได้รับการเรียกใช้ฟังก์ชันที่ไม่ถูกต้อง

143
00:11:28,430 --> 00:11:33,030
‫และอีกอย่างคือการที่ฉันไม่มีเครื่องหมายและหน้าฟังก์ชันที่ฉันพยายามใช้

144
00:11:33,050 --> 00:11:37,070
‫มาดู Unreal กันดีกว่าว่าใช้งานได้จริงหรือไม่

145
00:11:37,070 --> 00:11:41,930
‫ถ้าฉันไปข้างหน้าและกดปุ่มเล่นและใช้ปุ่ม W และปุ่ม S คุณจะเห็นว่าฉันสามารถเดินหน้าและถอยหลังได้

146
00:11:41,930 --> 00:11:42,800
‫มันน่าทึ่ง.

147
00:11:42,800 --> 00:11:49,040
‫และเมื่อใช้เมาส์ ฉันสามารถมองขึ้นและลงได้ แต่ในขณะนั้นฉันรู้สึกกลับด้านกับการเคลื่อนไหวของฉัน

148
00:11:49,040 --> 00:11:55,310
‫ดังนั้นฉันจะไปที่การตั้งค่าผลิตภัณฑ์และกดลบหนึ่งในนั้นแล้วกดเล่น

149
00:11:56,560 --> 00:11:59,140
‫และตอนนี้ถ้าฉันขึ้นลงก็รู้สึกถูกต้อง

150
00:11:59,140 --> 00:12:01,990
‫สังเกตว่าจริง ๆ แล้วฉันกำลังวางไข่ในสองสถานที่ที่แตกต่างกัน

151
00:12:01,990 --> 00:12:04,780
‫นั่นเป็นเพราะฉันต้องเริ่มเล่นเมื่อฉันใส่อันที่สองเข้าไป

152
00:12:04,780 --> 00:12:08,650
‫ฉันไม่ได้รู้ว่ามีอยู่แล้วในระดับหนึ่ง ซึ่งเป็นสาเหตุที่บางครั้งฉันวางไข่ที่นี่

153
00:12:08,650 --> 00:12:10,120
‫บางครั้งวางไข่ในตำแหน่งอื่น

154
00:12:10,120 --> 00:12:11,500
‫คุณอาจพบสิ่งเดียวกัน

155
00:12:13,170 --> 00:12:14,940
‫จึงเป็นช่วงเวลาที่ท้าทาย

156
00:12:14,940 --> 00:12:22,920
‫ให้พวกคุณผูกมัดสิทธิ์ในภาพยนตร์ของคุณ แล้วคุณจะดูดีเพื่อที่เราจะได้ควบคุมการเคลื่อนไหวของเราได้อย่างเต็มที่

157
00:12:22,920 --> 00:12:28,590
‫ทำซ้ำขั้นตอนที่ฉันเพิ่งทำในการบรรยายสำหรับสองคนนี้และคุณอาจติดตามมาตลอด

158
00:12:28,830 --> 00:12:31,320
‫หากไม่ สามารถเข้าไปรับชมเพื่อทบทวนได้

159
00:12:31,320 --> 00:12:35,340
‫และฉันต้องการให้คุณลองใช้ฟังก์ชันกระโดดด้วย

160
00:12:35,460 --> 00:12:38,160
‫หากคุณกล้าพอ ให้หยุดวิดีโอชั่วคราวแล้วเริ่มเลย

161
00:12:38,920 --> 00:12:39,270
‫ตกลง.

162
00:12:39,270 --> 00:12:39,720
‫ยินดีต้อนรับกลับ.

163
00:12:39,720 --> 00:12:41,330
‫ลองมาลองดูกัน

164
00:12:41,340 --> 00:12:46,680
‫ก่อนอื่น เรากำลังทำซ้ำขั้นตอนข้างต้นเพื่อก้าวไปข้างหน้าและเงยหน้าขึ้นมอง

165
00:12:46,680 --> 00:12:50,160
‫งั้นเราไปกันเลยดีมั้ย?

166
00:12:50,430 --> 00:12:54,120
‫และเรากำลังจะมี แทนที่จะมองขึ้นไป เราจะมีลักษณะที่ถูกต้อง

167
00:12:54,450 --> 00:12:59,520
‫และเราสามารถคัดลอกสิ่งเหล่านี้เพื่อตั้งค่าแกนของเราในการตั้งค่าโปรเจ็กต์ได้

168
00:12:59,520 --> 00:13:02,160
‫เพิ่มการแมปแกนอีกสองสามอัน

169
00:13:02,160 --> 00:13:08,190
‫อันแรกกำลังจะย้าย ขวา ซึ่งฉันจะแมปกับกุญแจ สี่อันทางซ้าย

170
00:13:08,190 --> 00:13:10,890
‫นั่นก็คือตัวลบ

171
00:13:11,310 --> 00:13:18,990
‫A จะเท่ากับลบ 1 เพราะจริงๆ แล้ว มันทิ้งตรงข้ามกับทางขวา และ DX จะเป็น 4 ไปตอนนี้

172
00:13:18,990 --> 00:13:21,210
‫เห็นได้ชัดว่าคุณสามารถเพิ่มปุ่มลูกศรของคุณที่นี่ได้เช่นกัน

173
00:13:21,210 --> 00:13:23,190
‫ฉันไม่ได้ทำอย่างนั้นเพื่อประหยัดเวลา

174
00:13:23,190 --> 00:13:25,170
‫แต่คุณสามารถไปข้างหน้าและทำสิ่งเดียวกันได้

175
00:13:25,170 --> 00:13:31,170
‫คุณสามารถเพิ่มคีย์ได้ที่นี่ มากเท่าที่คุณต้องการเพื่อแมปกับรูปลักษณ์ของแกนเดียว

176
00:13:31,170 --> 00:13:31,680
‫ถูกต้อง.

177
00:13:31,680 --> 00:13:35,520
‫เราจะใช้เมาส์ x

178
00:13:36,310 --> 00:13:39,910
‫และฉันคิดว่าอันหนึ่งน่าจะเพียงพอมากกว่าลบหนึ่ง

179
00:13:40,180 --> 00:13:41,740
‫ฉันไม่คิดว่าเราต้องกลับด้านนี้

180
00:13:42,520 --> 00:13:45,610
‫แล้วสิ่งที่เราจะทำคือ เราจะผูกมันให้ต่างออกไปเล็กน้อย

181
00:13:45,610 --> 00:13:52,330
‫ดังนั้นฉันจะไปที่ alt oh เพื่อสร้างฟังก์ชันที่ถูกต้องที่นี่

182
00:13:53,390 --> 00:13:57,540
‫ตอนนี้คุณอาจสงสัยว่าทำไมเราถึงทำสิ่งนี้แตกต่างออกไป?

183
00:13:57,560 --> 00:13:58,620
‫ทำไมย้ายถูกต้อง?

184
00:13:58,640 --> 00:14:00,860
‫เหตุใดเราจึงไม่โทรไปตรงๆ เพื่อเพิ่มข้อมูลการเคลื่อนไหว

185
00:14:00,950 --> 00:14:02,990
‫ความแตกต่างอยู่ที่นี่ เรากำลังคำนวณอยู่เล็กน้อย

186
00:14:02,990 --> 00:14:09,630
‫เรากำลังเพิ่มการคูณนี้ด้วยเวกเตอร์ ซึ่งเพิ่มข้อมูลเล็กน้อยและพิสูจน์การมีอยู่ของฟังก์ชันนี้

187
00:14:09,650 --> 00:14:16,030
‫ดังนั้นคราวนี้ แทนที่จะได้ไปข้างหน้า ต้องการได้เวกเตอร์นักแสดงที่ถูกต้องเช่นนั้น แล้วคูณมันด้วยค่าแกน

188
00:14:16,040 --> 00:14:20,810
‫จากนั้นเราต้องการที่จะเรียกแทนการก้าวไปข้างหน้า

189
00:14:20,810 --> 00:14:24,980
‫เราต้องการที่จะเรียกย้ายตอนนี้เพื่อดู

190
00:14:26,960 --> 00:14:27,680
‫ถูกต้อง.

191
00:14:27,680 --> 00:14:34,310
‫แทนที่จะเพิ่มอินพุตพิทช์คอนโทรลเลอร์ เราต้องการทำอินพุตของคุณ

192
00:14:34,310 --> 00:14:36,380
‫จำม้วนสนามและคุณมาจากเครื่องบิน

193
00:14:36,380 --> 00:14:41,110
‫คุณสามารถค้นหาได้ในวิกิพีเดียหากคุณไม่แน่ใจว่าอันไหนเป็นอันไหน แล้วสร้างอันนั้นต่อไป

194
00:14:41,120 --> 00:14:43,190
‫หวังว่าคราวนี้ฉันไม่ได้ผิดไวยากรณ์

195
00:14:43,670 --> 00:14:49,310
‫ไปที่ตัวแก้ไขแล้วกดเล่นแล้วไปกันเถอะ

196
00:14:49,310 --> 00:14:50,510
‫ฉันสามารถมองไปรอบ ๆ ตัวฉันได้

197
00:14:50,510 --> 00:14:51,470
‫ที่ดูดี

198
00:14:51,470 --> 00:14:53,150
‫ฉันสามารถกราดยิงซ้ายและขวา

199
00:14:53,150 --> 00:14:55,010
‫ฉันสามารถไปข้างหน้าและข้างหลัง

200
00:14:55,010 --> 00:15:01,670
‫สิ่งที่เหลืออยู่สำหรับเราก็คือการกระโดด ซึ่งจะเป็นการทำแผนที่การกระทำแทนที่จะเป็นแกน เพราะมันเป็นการกระทำที่ไม่ต่อเนื่อง

201
00:15:01,670 --> 00:15:05,090
‫และผมเรียกมันว่าการกระโดดและคัดลอกมัน

202
00:15:05,120 --> 00:15:07,640
‫ไปที่รหัส Visual Studio

203
00:15:08,410 --> 00:15:13,870
‫และเพียงแค่ปิดหน้าต่างคอมไพล์ของฉัน และตอนนี้ ฉันกำลังจะทำแทนที่จะผูกแกน คุณก็เข้าใจแล้ว

204
00:15:13,870 --> 00:15:18,700
‫ฉันจะผูกการกระทำผูกการกระทำ

205
00:15:18,710 --> 00:15:19,660
‫ง่ายๆ อย่างนั้น

206
00:15:19,720 --> 00:15:21,940
‫มันจะเริ่มต้นด้วยข้อความที่นี่

207
00:15:22,930 --> 00:15:23,710
‫ของการกระโดด

208
00:15:24,190 --> 00:15:28,840
‫แต่สิ่งที่แตกต่างกับขวานอย่างที่คุณคงจำได้

209
00:15:30,860 --> 00:15:38,570
‫เราจำเป็นต้องใช้ไวยากรณ์นี้หรือไม่ ฉันป้อนเหตุการณ์ ซึ่งเป็น enum ซึ่งหมายความว่าโดยพื้นฐานแล้วสามารถใช้ตัวเลือกต่าง

210
00:15:38,570 --> 00:15:48,080
‫ๆ เหล่านี้ได้หลายอย่าง ดับเบิลคลิก แถลงข่าว ฯลฯ เรากำลังต้องการที่จะกระโดดบนสื่อเช่นนั้น

211
00:15:55,710 --> 00:16:04,980
‫นั่นคือฉันขีดเส้นใต้กดแล้วเมื่อเรารู้ว่าเราสามารถไปข้างหน้าและทำแบบเดียวกันนี้แล้วเราต้องการที่จะเรียกร้องให้กระโดด

212
00:16:05,280 --> 00:16:07,700
‫ตอนนี้การกระโดดถูกกำหนดไว้ที่ใด?

213
00:16:07,710 --> 00:16:08,460
‫มันอยู่ใน --?

214
00:16:08,460 --> 00:16:09,330
‫มาดูกันเลย

215
00:16:10,320 --> 00:16:13,440
‫ไม่ แต่มันอาจจะอยู่ในตัวละคร

216
00:16:13,440 --> 00:16:16,230
‫ดังนั้นฉันจะทำการควบคุม P และมองหาตัวละคร

217
00:16:20,540 --> 00:16:21,710
‫จุดเอช

218
00:16:23,850 --> 00:16:28,800
‫เปิดขึ้นมาและดูที่นี่ ดูว่าพวกเขามีฟังก์ชั่นการกระโดดที่กำหนดไว้ในที่นี่หรือไม่

219
00:16:29,040 --> 00:16:32,990
‫การข้ามแล้วเปิดวงเล็บมักเป็นวิธีที่ดีในการค้นหาฟังก์ชันภายในไฟล์ส่วนหัว

220
00:16:33,000 --> 00:16:34,860
‫แน่นอนว่าเราได้ฟังก์ชันนั้นแล้ว

221
00:16:34,860 --> 00:16:36,030
‫คุณสามารถดูเอกสาร

222
00:16:36,030 --> 00:16:40,230
‫ฉันมักจะชอบใช้ซอร์สโค้ดโดยตรง แทนที่จะค้นหาไฟล์เอกสารใดๆ

223
00:16:40,230 --> 00:16:44,790
‫ฉันพบว่าบางครั้งการเข้าถึงเร็วกว่ามาก โดยเฉพาะอย่างยิ่งเมื่อคุณมีสิทธิ์เข้าถึงเพื่อควบคุม

224
00:16:44,790 --> 00:16:46,770
‫P ในโค้ด Visual Studio

225
00:16:47,430 --> 00:16:52,620
‫สิ่งที่เราต้องทำคือแทนที่จะไป -- ทวิภาค ทวิภาค เราต้องทำอักขระทวิภาค ทวิภาค

226
00:16:52,620 --> 00:16:56,610
‫มันจะเป็นเครื่องหมายแอมเพอร์แซนด์ ทวิภาคอักขระ

227
00:16:56,610 --> 00:16:59,190
‫โคลอน นี่เป็นเพราะนั่นคือคลาสที่กำหนดไว้

228
00:16:59,190 --> 00:17:05,880
‫เราไม่สามารถค้นหาลำดับชั้นเมื่อเราทำโคลอน ตัวดำเนินการโคลอน แล้วมันจะกระโดด

229
00:17:05,880 --> 00:17:07,830
‫ดังนั้นตัวอักษร ทวิภาค ทวิภาคกระโดด

230
00:17:07,830 --> 00:17:10,560
‫และอย่าลืมว่าฉันต้องการเครื่องหมายอัฒภาคที่ท้ายบรรทัด

231
00:17:10,560 --> 00:17:13,890
‫ไปข้างหน้าและสร้างและดูว่าเราสามารถกระโดดในขณะนี้

232
00:17:17,430 --> 00:17:19,790
‫บิลด์ทำงานได้อย่างถูกต้อง

233
00:17:19,800 --> 00:17:21,810
‫ไปที่ระดับแซนด์บ็อกซ์กัน

234
00:17:21,810 --> 00:17:24,600
‫ตีเล่นและลองกระโดด

235
00:17:24,780 --> 00:17:28,380
‫ฉันไม่มีกุญแจที่ผูกไว้ มันอาจจะขัดขวางฉัน

236
00:17:28,710 --> 00:17:35,200
‫เพิ่มสเปซบาร์เป็นกุญแจสำคัญที่ฉันต้องการกระโดดไปข้างหน้าแล้วกดเล่น

237
00:17:35,220 --> 00:17:35,910
‫เย้.

238
00:17:35,910 --> 00:17:39,750
‫ฉันสามารถกระโดดขึ้นลงและเคลื่อนที่ไปในอากาศและเคลื่อนที่ไปมาได้

239
00:17:39,870 --> 00:17:40,560
‫มหัศจรรย์.

240
00:17:40,560 --> 00:17:44,760
‫เราจึงได้เรียนรู้วิธีการผูกขวานและการกระทำของเราโดยที่เรายังไม่เคยเรียนรู้มาก่อน

241
00:17:44,790 --> 00:17:51,300
‫เราได้แก้ไขแล้ว แต่เราได้เห็นสิ่งที่เราต้องการที่จะผูกมัดในตัวละครเพื่อให้ตัวละครคลาสสิกกระโดด

242
00:17:51,300 --> 00:17:59,760
‫ยิงกราด เคลื่อนไหว และมองด้วยกล้องของคุณที่เราทุกคนรู้จักและชื่นชอบจากมือปืนของเรา

243
00:18:00,760 --> 00:18:08,400
‫และการบรรยายครั้งต่อไปจะกล่าวถึงความแตกต่างที่จำเป็นสำหรับการเคลื่อนย้ายด้วยคอนโทรลเลอร์ เช่นเดียวกับคีย์บอร์ดและเมาส์

