﻿1
00:00:04,320 --> 00:00:05,040
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,040 --> 00:00:11,940
‫หัวข้อของการบรรยายครั้งนี้จะเป็นการทำหน้าที่รับความเสียหายของนักแสดง และเราเรียกมันว่าอย่างไร

3
00:00:11,940 --> 00:00:14,700
‫มาดำดิ่งและค้นหาข้อมูลทั้งหมดเกี่ยวกับมัน

4
00:00:15,770 --> 00:00:22,250
‫ดังนั้นเพื่อให้เราสามารถสร้างความเสียหายให้กับบางสิ่งบางอย่างได้ เราจำเป็นต้องมีบางสิ่งบางอย่างที่เราสามารถโจมตีได้

5
00:00:22,370 --> 00:00:29,480
‫ไปที่เส้นทางเบราว์เซอร์เนื้อหาของเราและนำหนึ่งในตัวละครนักกีฬา BP เข้ามา

6
00:00:29,810 --> 00:00:36,170
‫เพราะจริง ๆ แล้วสิ่งที่เกิดขึ้นคือถ้าคุณนำตัวละครเข้ามาในฉาก Unreal จะทำให้ตัวละครนี้ควบคุมโดย

7
00:00:36,170 --> 00:00:43,190
‫AI โดยอัตโนมัติและตัวละครที่วางไข่ที่ผู้เล่นเริ่มต้นจะถูกควบคุมโดยผู้เล่น

8
00:00:43,190 --> 00:00:44,660
‫ดีมาก

9
00:00:44,660 --> 00:00:45,890
‫นั่นคือพฤติกรรมที่เราต้องการ

10
00:00:45,890 --> 00:00:54,080
‫ถ้าฉันไปข้างหน้าและกด alt p คุณจะสังเกตเห็นว่าฉันอยู่ในจุดเกิดที่ไม่ถูกต้อง ดังนั้นบางทีฉันต้องการลบผู้เล่นคนที่สองนี้เริ่มต้น

11
00:00:54,080 --> 00:00:57,110
‫ถ้าฉันกด alt p ตอนนี้เราจะอยู่ในตำแหน่งที่ถูกต้อง

12
00:00:57,110 --> 00:00:58,610
‫มีศัตรูของฉัน

13
00:00:58,610 --> 00:01:00,050
‫ฉันสามารถยิงใส่ศัตรูได้

14
00:01:00,050 --> 00:01:01,190
‫ฉันได้รับผลกระทบ

15
00:01:01,190 --> 00:01:03,140
‫แต่เห็นได้ชัดว่าฉันไม่ได้ทำอันตรายใด ๆ

16
00:01:03,140 --> 00:01:04,250
‫ยังไงก็ไม่ใช่

17
00:01:04,700 --> 00:01:07,400
‫และการทำความเสียหายเป็นกระบวนการสองส่วน

18
00:01:07,400 --> 00:01:12,650
‫ส่วนแรกกำลังส่งความเสียหาย ส่วนที่สองกำลังได้รับมัน

19
00:01:12,650 --> 00:01:19,400
‫ในการบรรยายนี้ เราจะจัดการกับการส่งความเสียหายไปยังผู้เล่นและการเรียกใช้ฟังก์ชันที่เกี่ยวข้อง

20
00:01:19,820 --> 00:01:30,890
‫ดังนั้นประเด็นหลักที่เราจะดูคือในนักแสดง Dot H และเรากำลังมองหาการเรียกใช้ฟังก์ชันที่เรียกว่ารับความเสียหาย

21
00:01:31,340 --> 00:01:34,370
‫และคุณจะเห็นว่ามีฟังก์ชันเสมือนอยู่ที่นี่

22
00:01:34,370 --> 00:01:35,960
‫มันกลับลอย

23
00:01:35,960 --> 00:01:41,870
‫สิ่งที่ได้กลับมาคือความเสียหายที่เกิดขึ้นจริงกับนักแสดง จำนวนจริงที่ใช้จริง

24
00:01:42,500 --> 00:01:50,810
‫และสิ่งที่เกิดขึ้นคือจำนวนความเสียหาย เหตุการณ์ความเสียหาย ซึ่งทำให้เราได้รับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนั้น

25
00:01:50,810 --> 00:01:54,590
‫ความเสียหายที่เกิดขึ้นเรามีผู้ยุยง

26
00:01:54,590 --> 00:01:58,730
‫ที่บอกว่าใครเป็นผู้ควบคุมที่รับผิดชอบในการก่อให้เกิดความเสียหายนี้?

27
00:01:59,000 --> 00:02:03,770
‫แล้วผู้ก่อเหตุเสียหาย ฝ่ายไหนรับผิดชอบ?

28
00:02:03,770 --> 00:02:06,380
‫ในกรณีนี้ อาจเป็นปืนก็ได้

29
00:02:06,380 --> 00:02:11,810
‫หรือจะบอกว่านี่คือกระสุนปืนที่ระเบิด หินที่ตกลงมาที่คุณในกรณีนี้

30
00:02:11,810 --> 00:02:15,830
‫ปืนที่ยิงคุณ จะเป็นนักแสดงที่รับผิดชอบ

31
00:02:15,920 --> 00:02:18,920
‫ดังนั้นจึงได้รับความเสียหายโดยสังเขป

32
00:02:18,950 --> 00:02:25,250
‫ส่วนใหญ่ควรจะตรงไปตรงมาสำหรับคุณที่จะรวมเข้าด้วยกัน ยกเว้นโครงสร้างเหตุการณ์ความเสียหายนี้

33
00:02:25,250 --> 00:02:26,510
‫และนั่นก็ซับซ้อนกว่าเล็กน้อย

34
00:02:26,510 --> 00:02:32,120
‫มาดูโครงสร้างเหตุการณ์ความเสียหายนี้กัน และดูว่าเราสามารถทำอะไรได้บ้าง?

35
00:02:32,150 --> 00:02:34,160
‫จะแต่งยังไงดี?

36
00:02:34,160 --> 00:02:36,020
‫เราจะรวบรวมสิ่งนี้ได้อย่างไร?

37
00:02:36,020 --> 00:02:42,350
‫ตอนนี้ยังไม่ชัดเจนในทันที แต่จริงๆ แล้วมีสองประเภทย่อยสำหรับเหตุการณ์ความเสียหายนี้

38
00:02:42,350 --> 00:02:47,360
‫ในทางปฏิบัติ คุณจะไม่สร้างเหตุการณ์ความเสียหายของ EF จริงๆ แต่คุณกำลังสร้างเหตุการณ์ความเสียหายจุด

39
00:02:47,360 --> 00:02:54,410
‫EF หรือคุณจะสร้างเหตุการณ์ความเสียหายจากรัศมีของ EF

40
00:02:54,410 --> 00:02:58,310
‫นี่คือความเสียหายหลักสองประเภทที่มีอยู่ใน Unreal

41
00:02:58,310 --> 00:03:03,500
‫คุณสามารถสร้างความเสียหายประเภทต่างๆ เพิ่มเติมสำหรับสิ่งของที่คุณกำหนดเองได้

42
00:03:03,500 --> 00:03:11,990
‫เช่น คุณอาจมีความเสียหายจากไฟไหม้และด้วยพารามิเตอร์ที่แตกต่างกัน แต่ในกรณีนั้น เราสนใจในรัศมีของ EF และความเสียหายแบบจุด

43
00:03:11,990 --> 00:03:18,380
‫ดังนั้นรัศมีจะเหมือนกับระเบิดมือ ซึ่งในกรณีที่คุณต้องการจะพูดว่า โอเค

44
00:03:18,380 --> 00:03:21,020
‫รัศมีอยู่ตรงไหน ตกคืออะไร?

45
00:03:21,020 --> 00:03:27,470
‫สิ่งต่าง ๆ เหล่านั้นที่จุดเสียหายเป็นเพราะมันฟังดูเหมาะสมกว่าสำหรับสิ่งต่าง

46
00:03:27,470 --> 00:03:28,310
‫ๆ เช่นปืน

47
00:03:28,400 --> 00:03:35,930
‫ดังนั้น เราจะสร้างเหตุการณ์ความเสียหายจุด EF และเราจะไปหาตัวสร้าง นี่คือตัวสร้างสำหรับมัน

48
00:03:35,930 --> 00:03:40,280
‫และเราจะเห็นว่ามันเข้ามาทำอะไร

49
00:03:40,310 --> 00:03:41,720
‫มันรับค่าความเสียหายอีกแล้ว

50
00:03:41,720 --> 00:03:43,400
‫นั่นเป็นการทำซ้ำเล็กน้อยที่นั่น

51
00:03:43,610 --> 00:03:48,620
‫เรากำลังมีผลการโจมตีที่ทำให้จุดเสียหายนี้เกิดขึ้น

52
00:03:48,860 --> 00:03:51,380
‫จากนั้นเราก็มีทิศทางการยิง

53
00:03:51,380 --> 00:03:51,680
‫ยอดเยี่ยม.

54
00:03:51,680 --> 00:03:52,880
‫เราได้คำนวณไว้แล้ว

55
00:03:52,880 --> 00:03:59,540
‫ฉันกำลังคิดไปข้างหน้าเล็กน้อยเมื่อเราทำอย่างนั้นในการบรรยายครั้งก่อนและคลาสย่อยของประเภทความเสียหายนี้

56
00:03:59,540 --> 00:04:09,500
‫ตอนนี้สามารถใช้เพื่อส่งข้อมูลเพิ่มเติม เพื่อที่จริง ๆ แล้วแทนที่จะสร้างประเภทเหตุการณ์ความเสียหายอื่น คุณอาจจะสร้างประเภทความเสียหายที่แตกต่างกัน

57
00:04:09,500 --> 00:04:15,620
‫ดังนั้นคุณอาจมีประเภทไฟหรืออะไรทำนองนั้นในกรณีนี้เพราะเราไม่ต้องการประเภทความเสียหายใด

58
00:04:15,620 --> 00:04:16,220
‫ๆ

59
00:04:16,220 --> 00:04:21,080
‫เราไม่ได้ทำความเสียหายจากไฟหรืออะไรเป็นพิเศษเช่นความเสียหายจากพิษนั้น

60
00:04:21,080 --> 00:04:25,310
‫สิ่งที่เราจะทำก็แค่ส่งผ่านตัวชี้ว่างตรงนี้แทน

61
00:04:25,310 --> 00:04:32,330
‫มาลองสร้างสิ่งเหล่านี้ด้วยกันแล้วฉันจะให้คุณเรียกมันว่าเหตุการณ์รับความเสียหาย

62
00:04:32,990 --> 00:04:41,510
‫สิ่งแรกที่ต้องทำคือการวางประเภท เราจะเรียกมันว่าเหตุการณ์ความเสียหาย จากนั้นเราจะสร้างมันขึ้นมา

63
00:04:41,510 --> 00:04:45,860
‫อย่างแรกเลย ค่าความเสียหาย เรายังไม่มีหนึ่งในนั้นสำหรับปืน

64
00:04:45,860 --> 00:04:48,140
‫เราไม่มีความเสียหายเท่าไหร่

65
00:04:48,140 --> 00:04:51,050
‫เพื่อให้เราสามารถดำเนินการต่อและสร้างข้อมูลบางอย่างได้ที่นั่น

66
00:04:51,050 --> 00:04:52,730
‫เรามีช่วงสูงสุดแล้ว

67
00:04:52,730 --> 00:04:54,740
‫เราต้องการคุณสมบัติเพิ่มเติมที่นี่

68
00:04:54,770 --> 00:05:00,440
‫มันจะเป็นการแก้ไขที่ใดก็ได้ซึ่งจะทำให้เราสามารถพูดได้ว่าเสียหายแบบลอยตัว

69
00:05:00,440 --> 00:05:01,400
‫เราเสียหายมากน้อยแค่ไหน?

70
00:05:01,400 --> 00:05:05,750
‫ฉันจะทำดาเมจ 10 แต้ม แล้วเราก็สามารถใช้สิ่งนี้ใน C++ ได้

71
00:05:05,750 --> 00:05:09,320
‫ความเสียหายคือสิ่งที่เราจะพูดถึงเป็นข้อโต้แย้งแรก

72
00:05:09,440 --> 00:05:11,510
‫อันที่สองคือผลการตีนั้น?

73
00:05:11,510 --> 00:05:13,670
‫โชคดีที่เราได้ผลการตีที่เรียกว่าการตี

74
00:05:14,470 --> 00:05:23,290
‫ต่อไปก็จะเป็นทิศทางการยิงที่เราคำนวณไว้แล้วสำหรับตัวปล่อยของเราที่ตำแหน่ง

75
00:05:24,060 --> 00:05:29,730
‫จากนั้นเราจะดูคลาสย่อย ซึ่งจะเป็นตัวชี้ว่าง

76
00:05:30,230 --> 00:05:31,800
‫โอเค เท่านี้ก็เรียบร้อย

77
00:05:31,800 --> 00:05:36,060
‫สิ่งต่อไปก็แค่จับนักแสดงที่เราพยายามจะสร้างความเสียหาย

78
00:05:36,060 --> 00:05:38,620
‫นั่นค่อนข้างตรงไปตรงมาจากการตีที่คุณทำ

79
00:05:38,670 --> 00:05:41,610
‫Hit dot รับนักแสดงที่นี่

80
00:05:42,090 --> 00:05:48,630
‫แต่คุณจะต้องตรวจสอบว่านี่ไม่ใช่โมฆะเพราะเราไม่ต้องการลงเอยด้วยตัวแสดงค่าว่างที่เรากำลังพยายามสร้างความเสียหาย

81
00:05:48,630 --> 00:05:52,620
‫หรือเราจะจบลงด้วยการหยุดทำงาน

82
00:05:53,100 --> 00:05:58,800
‫ดังนั้นความท้าทายของคุณคือการเรียกฟังก์ชันรับความเสียหายที่ตรวจสอบนักแสดงว่าเป็นโมฆะ

83
00:05:58,830 --> 00:06:04,690
‫ก่อนอื่น เราไม่ต้องการนักแสดงที่เป็นโมฆะและเรียกรับความเสียหาย และดูว่าคุณสามารถรวบรวมมันได้หรือไม่

84
00:06:04,710 --> 00:06:06,360
‫หยุดวิดีโอชั่วคราวและไปกันเลย

85
00:06:08,480 --> 00:06:08,720
‫ตกลง.

86
00:06:08,720 --> 00:06:09,470
‫ยินดีต้อนรับกลับ.

87
00:06:09,620 --> 00:06:12,260
‫ดังนั้นเราจึงมีนักแสดงรับเชิญของเราที่นี่

88
00:06:12,300 --> 00:06:15,710
‫ผมจะเรียกสิ่งนี้ว่า ผมจะให้ตัวแปรนี้เล็กน้อย

89
00:06:15,710 --> 00:06:23,960
‫ตัวชี้นักแสดงจะเป็นตัวแสดงที่ได้รับความนิยม และเราจะดำเนินการต่อไป และทำคำสั่ง if

90
00:06:23,960 --> 00:06:31,790
‫ในที่นี้ โดยพื้นฐานแล้วบอกว่าถ้านักแสดงที่โดนไม่เท่ากับตัวชี้ค่าว่าง เราก็ไปต่อ

91
00:06:31,790 --> 00:06:37,970
‫กับนักแสดงตีคนนี้เพื่อเรียกใช้ฟังก์ชันรับความเสียหาย

92
00:06:38,390 --> 00:06:43,040
‫และเรากำลังจะทำจำนวนความเสียหายในที่นี้คืออาร์กิวเมนต์แรก

93
00:06:43,040 --> 00:06:44,630
‫อันที่สองคืออะไร?

94
00:06:44,630 --> 00:06:49,250
‫ฉันแค่จะกลับไปที่ Take Damage และดูสักหน่อย

95
00:06:49,250 --> 00:06:54,650
‫ต่อไปเป็นโครงสร้างที่เรารวบรวมเหตุการณ์ความเสียหายนี้

96
00:06:54,650 --> 00:06:56,660
‫ลองใส่ที่ในวินาที

97
00:06:56,660 --> 00:07:00,800
‫จากนั้นเราจะดูที่คอนโทรลเลอร์ที่สร้างสิ่งนี้

98
00:07:00,800 --> 00:07:02,450
‫นั่นคือตัวควบคุมของเรา

99
00:07:02,450 --> 00:07:05,210
‫ผู้ควบคุมปืนเป็นผู้ทำความเสียหาย

100
00:07:05,210 --> 00:07:11,210
‫และนี่คือตัวกระตุ้นที่เป็นพารามิเตอร์สุดท้ายในการรับดาเมจของเรา

101
00:07:11,210 --> 00:07:23,750
‫และเราอาจจะแค่ต้องการสร้างโครงสร้างนี้ภายในนี้ ถ้าตัวแสดงไม่เท่ากับตัวชี้ null เพราะไม่จำเป็นถ้าเราไม่มีตัวแสดงที่ใช้ความเสียหายนี้

102
00:07:24,410 --> 00:07:28,760
‫ลองไปคอมไพล์ดูว่าจะได้ผลหรือไม่

103
00:07:28,760 --> 00:07:30,290
‫ดังนั้นฉันจึงได้รับข้อผิดพลาดในบันทึกของฉัน

104
00:07:30,290 --> 00:07:31,880
‫เรามาดูกันว่าเกิดอะไรขึ้น

105
00:07:31,880 --> 00:07:33,680
‫โอ้ ฉันแค่ขาดเซมิโคลอน

106
00:07:33,680 --> 00:07:34,820
‫นั่นเป็นเรื่องง่ายสวย

107
00:07:34,820 --> 00:07:37,040
‫หนึ่งที่จะแก้ไขหลังจากรับนักแสดงที่นั่น

108
00:07:37,040 --> 00:07:38,330
‫ไปลองกันใหม่ครับ

109
00:07:38,870 --> 00:07:39,320
‫เย็น.

110
00:07:39,320 --> 00:07:46,760
‫ทุกอย่างได้รับการคอมไพล์สำเร็จแล้ว และเราสามารถไปข้างหน้าและเล่นได้ และเพียงแค่ตรวจสอบว่าการยิงจะไม่ให้ข้อผิดพลาดที่เป็นโมฆะใดๆ

111
00:07:46,760 --> 00:07:52,220
‫แก่เรา หรือพยายามทำให้เอ็นจิ้นพัง

112
00:07:52,250 --> 00:07:53,900
‫ดูเหมือนไม่เป็นไร

113
00:07:53,990 --> 00:08:02,810
‫ดังนั้นเราจะไปที่การบรรยายครั้งต่อไปที่เราจะลองรับความเสียหายของนักแสดงคนนี้ที่เราได้วางไว้ในระดับนี้

114
00:08:02,810 --> 00:08:03,560
‫ดังนั้นคุณอยู่ที่นั่น

