﻿1
00:00:04,170 --> 00:00:04,650
‫เฮ้.

2
00:00:04,650 --> 00:00:05,610
‫ยินดีต้อนรับกลับ.

3
00:00:05,640 --> 00:00:14,250
‫ตอนนี้เรามีโพรเจกไทล์ของเราแล้ว และเรารู้ว่ามันกำลังสร้างเหตุการณ์โจมตี ดังนั้นเราต้องทำอะไรบางอย่างเมื่อโพรเจกไทล์ไปถึงเป้าหมายของเราจริงๆ

4
00:00:14,280 --> 00:00:19,200
‫นั่นจะเกี่ยวข้องกับการทำความเสียหาย ซึ่งหมายความว่าเราต้องการวิธีติดตามสุขภาพ

5
00:00:19,200 --> 00:00:24,840
‫ดังนั้นเราจะสร้างคลาสสำหรับจัดการสุขภาพและความเสียหายที่เรียกว่าองค์ประกอบด้านสุขภาพ

6
00:00:24,930 --> 00:00:30,720
‫และเหตุผลที่ฟังก์ชันนี้ได้รับคลาสของตัวเองก็เพื่อให้เราสามารถนำมาใช้ใหม่ได้สำหรับคลาสต่างๆ

7
00:00:30,720 --> 00:00:32,690
‫เช่น รถถังและหอคอย

8
00:00:32,700 --> 00:00:35,250
‫เรามาพูดถึงองค์ประกอบด้านสุขภาพนี้กัน

9
00:00:35,640 --> 00:00:38,900
‫ตอนนี้เราคุ้นเคยกับคลาสคอมโพเนนต์ฉากการใช้งานแล้ว

10
00:00:38,910 --> 00:00:43,390
‫คลาสนี้มาจากคลาสที่เรียกว่า you actor component

11
00:00:43,410 --> 00:00:47,220
‫อันที่จริง นี่คือเอกสารประกอบการใช้ฉาก

12
00:00:47,220 --> 00:00:53,100
‫และในลำดับชั้นการสืบทอด คุณจะเห็นว่าผู้ปกครองคือองค์ประกอบนักแสดงของคุณ

13
00:00:53,130 --> 00:00:57,330
‫ตอนนี้คุณทำหน้าที่องค์ประกอบเป็นพื้นฐานมากกว่าองค์ประกอบที่คุณเห็น

14
00:00:57,420 --> 00:00:59,070
‫มันไม่มีการเปลี่ยนแปลง

15
00:00:59,070 --> 00:01:05,020
‫ดังนั้นตำแหน่ง การหมุน และสเกลจึงไม่ใช่สิ่งที่องค์ประกอบนักแสดงของคุณมีด้วยซ้ำ

16
00:01:05,040 --> 00:01:06,930
‫ไม่รองรับไฟล์แนบ

17
00:01:06,930 --> 00:01:12,660
‫คุณไม่สามารถแนบส่วนประกอบที่ใช้งานอยู่กับส่วนประกอบที่เป็นตาข่ายแบบคงที่หรือส่วนประกอบแบบแคปซูลได้

18
00:01:12,660 --> 00:01:15,180
‫มันเป็นเพียงบางอย่างที่เป็นของนักแสดง

19
00:01:15,180 --> 00:01:20,910
‫และเนื่องจากไม่มีการแสดงภาพหรือการแปลงภาพ เราจึงไม่จำเป็นต้องแนบไปกับสิ่งใด

20
00:01:21,000 --> 00:01:27,060
‫เปรียบเทียบสิ่งนี้กับองค์ประกอบฉากการใช้งาน ซึ่งจริงๆ แล้วมีการเปลี่ยนรูปและความสามารถในการแนบตัวเองกับส่วนประกอบอื่นๆ

21
00:01:27,060 --> 00:01:31,640
‫หรือมีส่วนประกอบอื่นๆ ติดอยู่ด้วย

22
00:01:31,650 --> 00:01:36,450
‫ดังนั้น เพื่อติดตามสุขภาพและดูแลความเสียหาย เราไม่ต้องการสิ่งเหล่านั้น

23
00:01:36,450 --> 00:01:39,990
‫ดังนั้นคุณทำหน้าที่ส่วนประกอบจะสมบูรณ์แบบสำหรับสิ่งนี้

24
00:01:40,170 --> 00:01:44,880
‫กลับมาที่เอดิเตอร์ที่นี่ และทำให้แอคใหม่ของเราเป็นคลาสคอมโพเนนต์

25
00:01:44,880 --> 00:01:48,690
‫ดังนั้นเราจะไปที่เครื่องมือและคลาส C++ ใหม่

26
00:01:48,690 --> 00:01:51,890
‫และหากฉันเลื่อนลงมา ฉันจะเห็นองค์ประกอบของนักแสดง

27
00:01:51,900 --> 00:01:53,730
‫นี่คือสิ่งที่เราจะเลือก

28
00:01:53,760 --> 00:01:54,630
‫ตอนนี้ระวัง

29
00:01:54,630 --> 00:01:56,400
‫ไม่เลือกนักแสดง

30
00:01:56,400 --> 00:01:57,750
‫นั่นเป็นคลาสที่แตกต่างกัน

31
00:01:57,750 --> 00:02:02,610
‫อันที่จริงมันเป็นคลาสที่ใหญ่กว่าและมีหลายสิ่งหลายอย่างมากกว่าองค์ประกอบของนักแสดง

32
00:02:02,610 --> 00:02:07,560
‫เราต้องการองค์ประกอบนักแสดงโดยเฉพาะ เลือกสิ่งนั้น คลิกถัดไป

33
00:02:07,560 --> 00:02:11,490
‫และเราเรียกง่ายๆ ว่าองค์ประกอบด้านสุขภาพ

34
00:02:11,880 --> 00:02:13,740
‫มาคลิกสร้างชั้นเรียนกันเถอะ

35
00:02:14,190 --> 00:02:25,980
‫ตอนนี้เรามีองค์ประกอบด้านสุขภาพและไฟล์ CP ใหม่และคุณจะเห็นว่าองค์ประกอบด้านสุขภาพของคุณ คลาสที่เราเพิ่งสร้างขึ้นมาจากคุณทำหน้าที่เป็นส่วนประกอบ

36
00:02:25,980 --> 00:02:30,390
‫ดังนั้น ตรวจสอบให้แน่ใจว่าคุณมีประเภทที่ถูกต้องที่นี่ แล้วคุณจะเห็นว่ามีประเภทอยู่ในตัว U

37
00:02:30,390 --> 00:02:31,710
‫มาโครคลาส

38
00:02:31,740 --> 00:02:36,360
‫เมตานี้ระบุตำแหน่งและระบุว่าองค์ประกอบตารางวางไข่ของพิมพ์เขียว

39
00:02:36,360 --> 00:02:43,050
‫นี่คือสิ่งที่จะช่วยให้เราเพิ่มองค์ประกอบนี้โดยตรงในพิมพ์เขียว ซึ่งเรากำลังจะทำตอนนี้

40
00:02:43,050 --> 00:02:48,960
‫องค์ประกอบด้านสุขภาพใหม่กำลังจะดูแลสุขภาพ ซึ่งหมายความว่าเราต้องการตัวแปรสองสามอย่าง

41
00:02:48,960 --> 00:02:52,380
‫ไปข้างหน้าและเพิ่มสิ่งเหล่านี้และฉันจะทำให้เป็นส่วนตัว

42
00:02:52,380 --> 00:02:59,700
‫ไปข้างหน้าและเพิ่มส่วนส่วนตัวภายใต้ส่วนที่ได้รับการป้องกันและเราสามารถเพิ่มตัวแปรด้านสุขภาพสองสามตัว

43
00:02:59,700 --> 00:03:04,290
‫ทีนี้ สิ่งเหล่านี้จะลอยอยู่ และฉันจะเรียกอันแรกว่า Max Health

44
00:03:04,320 --> 00:03:10,440
‫นี่จะเป็นจำนวนสุขภาพสูงสุดที่เราสามารถมีได้และเราสามารถตั้งค่านี้เป็นค่าเริ่มต้นเช่น

45
00:03:10,440 --> 00:03:12,180
‫100 F

46
00:03:12,180 --> 00:03:20,850
‫ตอนนี้ นอกจากพลังชีวิตสูงสุดแล้ว เราจะมีค่าพลังชีวิตซึ่งจะเป็นพลังชีวิตปัจจุบัน และนี่คือสิ่งที่เปลี่ยนแปลงเมื่อเราได้รับความเสียหาย

47
00:03:20,850 --> 00:03:24,720
‫มาทำทุ่นอีกอันแล้วเรียกสิ่งนี้ว่าสุขภาพกัน

48
00:03:24,720 --> 00:03:30,900
‫ตอนนี้เราสามารถเริ่มต้นสุขภาพเป็นศูนย์ F แล้วตั้งค่าและเริ่มเล่น

49
00:03:30,900 --> 00:03:39,690
‫และเหตุผลที่เราจะทำอย่างนั้นก็เพราะ Max Health จะมีคุณสมบัติเป็นของคุณเอง ทำให้เราตั้งค่าจากภายในแผงรายละเอียดได้

50
00:03:39,690 --> 00:03:43,470
‫ลองให้คุณสมบัติ U นี้และแก้ไขได้ทุกที่

51
00:03:43,680 --> 00:03:46,500
‫ด้วยวิธีนี้เราสามารถเปลี่ยนแปลงได้ในขณะที่เรากำลังพัฒนา

52
00:03:46,500 --> 00:03:54,600
‫จากนั้นในองค์ประกอบสุขภาพ CP ที่นี่และเริ่มเล่น เราสามารถตั้งค่าสุขภาพให้เท่ากับค่าของพลังชีวิตสูงสุด

53
00:03:54,600 --> 00:04:01,860
‫ดังนั้นเมื่อเกมเริ่มต้น สุขภาพจะมีค่าของพลังชีวิตสูงสุดแม้ว่าเราจะเปลี่ยนแปลงในแผงรายละเอียดแล้วก็ตาม

54
00:04:02,040 --> 00:04:10,920
‫เอาล่ะ มารวบรวมสิ่งนี้และกลับมาที่นี่ในเครื่องมือแก้ไข ฉันจะเปิด BP -- tank และเปิดตัวแก้ไขพิมพ์เขียวแบบเต็ม

55
00:04:10,920 --> 00:04:16,200
‫และตอนนี้ฉันสามารถเพิ่มองค์ประกอบด้านสุขภาพที่นี่ในแผงส่วนประกอบได้

56
00:04:16,290 --> 00:04:20,130
‫ฉันจะคลิกเพิ่มและค้นหาสุขภาพ

57
00:04:20,370 --> 00:04:22,350
‫และที่นี่เราเห็นสุขภาพ

58
00:04:22,530 --> 00:04:25,860
‫ตอนนี้เราเรียกมันว่าองค์ประกอบด้านสุขภาพใน C ++

59
00:04:25,860 --> 00:04:29,670
‫และอันที่จริง ป๊อปอัปแสดงว่ามันถูกเรียกว่าองค์ประกอบด้านสุขภาพ

60
00:04:29,670 --> 00:04:33,420
‫ดังนั้นมันจึงดึงส่วนประกอบนั้นออกเมื่อแสดงไว้ที่นี่

61
00:04:33,420 --> 00:04:38,220
‫และคุณอาจสังเกตเห็นว่าเมื่อคุณมองหาส่วนประกอบตาข่ายแบบคงที่หรือส่วนประกอบแคปซูล

62
00:04:38,220 --> 00:04:40,890
‫คุณจะไม่เห็นคำว่า ส่วนประกอบ ในที่นี้เช่นกัน

63
00:04:40,890 --> 00:04:48,270
‫ดังนั้นคลิกที่สุขภาพและตอนนี้เรามีองค์ประกอบด้านสุขภาพแล้วคุณจะเห็นว่าภายใต้องค์ประกอบสุขภาพเรามีสุขภาพสูงสุดและตั้งค่าไว้ที่

64
00:04:48,270 --> 00:04:55,080
‫100 และเราไม่เห็นสุขภาพเพราะเราไม่ได้เปิดเผยตัวแปรนั้น

65
00:04:55,170 --> 00:05:02,430
‫ดังนั้นตอนนี้ BP - รถถังมีองค์ประกอบด้านสุขภาพและบอกว่ารถถังเป็นเจ้าขององค์ประกอบสุขภาพนี้

66
00:05:02,430 --> 00:05:03,390
‫- รถถัง BP

67
00:05:03,860 --> 00:05:06,590
‫เป็นเจ้าขององค์ประกอบด้านสุขภาพนี้

68
00:05:06,620 --> 00:05:16,930
‫มารวบรวมและบันทึกและปิดและเปิด BP pawn turret และเปิด blueprint editor ฉบับสมบูรณ์ และเราสามารถเพิ่มองค์ประกอบด้านสุขภาพให้กับป้อมปืนบ่อได้เช่นกัน

69
00:05:16,940 --> 00:05:21,620
‫คลิกเพิ่มส่วนประกอบ ค้นหาสุขภาพ และเลือกสุขภาพ

70
00:05:21,620 --> 00:05:25,490
‫และตอนนี้เราก็มีองค์ประกอบด้านสุขภาพบนหอคอยด้วยเช่นกัน

71
00:05:25,670 --> 00:05:30,560
‫ดังนั้นฉันจะรวบรวมและบันทึกสิ่งเหล่านี้ ปิดและบันทึกทั้งหมด

72
00:05:30,590 --> 00:05:38,740
‫ตอนนี้เรามีองค์ประกอบด้านสุขภาพและเรากล่าวว่าเราต้องการมีองค์ประกอบด้านสุขภาพเพื่อให้เราสามารถนำมาใช้ซ้ำกับคลาสต่างๆได้

73
00:05:38,750 --> 00:05:47,040
‫ดังนั้นถ้าเรามีโรงจำนำในโลก พูด หอของเรา มันจะมีองค์ประกอบสุขภาพของตัวเอง จากนั้นรถถังของเราสามารถมีองค์ประกอบสุขภาพของตัวเอง

74
00:05:47,060 --> 00:05:52,340
‫ตอนนี้ เมื่อโพรเจกไทล์ของเราโต้ตอบกับสิ่งใดสิ่งหนึ่งเหล่านี้ ตัวอย่างเช่น เมื่อมันสร้างเหตุการณ์การชน

75
00:05:52,340 --> 00:06:00,830
‫เมื่อชนหนึ่งในสิ่งเหล่านี้ การจำนำของเราสามารถกระตุ้นการทำงานบางอย่างในองค์ประกอบสุขภาพและเปลี่ยนค่าสุขภาพเหล่านั้น

76
00:06:00,830 --> 00:06:07,820
‫การนำฟังก์ชันสุขภาพของเราไปไว้ในส่วนประกอบแล้วเพิ่มส่วนประกอบนั้นไปยังคลาสนั้นมีข้อดีมากกว่าทางเลือกอื่น

77
00:06:07,820 --> 00:06:17,520
‫เช่น การวางฟังก์ชันสุขภาพในคลาสการจำนำพื้นฐาน และสืบทอดสิ่งนั้นในรถถังและหอคอย

78
00:06:17,540 --> 00:06:26,420
‫คุณเห็นไหมว่าสิ่งนี้ช่วยให้เราสามารถรักษาคลาสรถถังและหอคอยของเราให้เล็กและจัดการกับฟังก์ชันการทำงานเฉพาะสำหรับคลาสเหล่านั้นเท่านั้น

79
00:06:26,420 --> 00:06:33,800
‫ในขณะที่องค์ประกอบด้านสุขภาพสามารถเพิ่มให้กับนักแสดงคนอื่น ๆ เช่นสิ่งที่ไม่ทำเหมือนรถถังหรือหอคอย

80
00:06:33,800 --> 00:06:39,950
‫เราสามารถสร้างกำแพงที่ทำลายได้ เช่น ซึ่งสามารถถูกทำลายได้ทันทีที่ได้รับความเสียหายเพียงพอ

81
00:06:39,950 --> 00:06:43,910
‫มาพูดคุยกันเล็กน้อยว่าเราจะทำให้สิ่งนี้เกิดขึ้นได้อย่างไร

82
00:06:43,910 --> 00:06:50,810
‫Unreal Engine ได้สร้างฟังก์ชันความเสียหายและระบบที่เสียหายนั้นค่อนข้างซับซ้อน

83
00:06:50,810 --> 00:06:58,490
‫นักแสดงคนใดก็ตามในเกมของเราจะได้รับเหตุการณ์ความเสียหายจำนวนหนึ่ง ซึ่งหนึ่งในนั้นถูกเรียกให้รับความเสียหายใดๆ

84
00:06:58,490 --> 00:07:03,440
‫นี่คือผู้รับมอบสิทธิ์แบบมัลติคาสต์ เช่นเดียวกับการตีคอมโพเนนต์

85
00:07:03,470 --> 00:07:08,360
‫ตอนนี้เรากำลังจะเพิ่มองค์ประกอบด้านสุขภาพให้กับเบี้ยของเราและสิ่งเหล่านี้จะขึ้นอยู่กับ U ของเรา

86
00:07:08,360 --> 00:07:09,860
‫คลาสองค์ประกอบสุขภาพ

87
00:07:09,860 --> 00:07:16,550
‫เนื่องจากเรารู้ว่าเบี้ยของเราจะได้รับมรดกนี้เมื่อได้รับความเสียหายใด ๆ หากเราสร้างฟังก์ชันที่กำหนดเองในคลาสองค์ประกอบสุขภาพ

88
00:07:16,550 --> 00:07:25,940
‫เราก็สามารถใช้ฟังก์ชันนี้เป็นการเรียกกลับและผูกไว้กับการรับความเสียหายใด ๆ ผู้รับมอบสิทธิ์

89
00:07:25,940 --> 00:07:33,200
‫ดังนั้นเมื่อใดก็ตามที่มีการสร้างเหตุการณ์ความเสียหาย ผู้รับมอบสิทธิ์รับความเสียหายใด ๆ รับความเสียหายสามารถออกอากาศและฟังก์ชันใด

90
00:07:33,200 --> 00:07:37,460
‫ๆ ที่ผูกไว้กับรายการเรียกจะถูกเรียก

91
00:07:37,460 --> 00:07:42,320
‫คำถามต่อไปคือ เราจะให้ผู้รับมอบสิทธิ์นั้นออกอากาศได้อย่างไร

92
00:07:42,320 --> 00:07:45,080
‫เราต้องการวิธีสร้างเหตุการณ์ความเสียหาย

93
00:07:45,080 --> 00:07:52,070
‫มีฟังก์ชันในสแตติกการเล่นเกมของคุณที่จะทำเช่นนั้นและเรียกว่าสร้างความเสียหาย

94
00:07:52,070 --> 00:07:58,550
‫หากเราใช้ฟังก์ชันสแตติกนี้จากสถิตการเล่นเกมของคุณเพื่อสร้างความเสียหาย การใช้ความเสียหายจะใช้พารามิเตอร์จำนวนหนึ่ง

95
00:07:58,550 --> 00:08:02,180
‫รวมถึงตัวแสดงที่ได้รับความเสียหาย

96
00:08:02,180 --> 00:08:11,720
‫ดังนั้นหากเราเรียก Apply Damage ผู้รับมอบสิทธิ์รับความเสียหายจะถูกไล่ออกและฟังก์ชันการเรียกกลับนั้นจะถูกเรียกในการตอบสนอง

97
00:08:11,720 --> 00:08:15,830
‫ดังนั้นการใช้ความเสียหายคือสิ่งที่สร้างเหตุการณ์ความเสียหาย

98
00:08:15,830 --> 00:08:19,520
‫เพื่อตั้งค่าทั้งหมดนี้ เรามีสามขั้นตอน

99
00:08:19,520 --> 00:08:25,760
‫ขั้นแรก สร้างฟังก์ชันเรียกกลับ และเนื่องจากสิ่งนี้จะถูกผูกไว้กับการรับความเสียหายใดๆ มันต้องมีพารามิเตอร์อินพุตที่ถูกต้อง

100
00:08:25,760 --> 00:08:33,950
‫ดังนั้นเมื่อรับความเสียหายใดๆ จะเรียกมันและส่งต่อข้อมูลที่เกี่ยวข้องทั้งหมดเกี่ยวกับเหตุการณ์ความเสียหาย

101
00:08:34,130 --> 00:08:37,970
‫ขั้นตอนที่สองคือการผูกการโทรกลับนี้กับผู้รับมอบสิทธิ์

102
00:08:38,000 --> 00:08:43,850
‫เราได้เห็นวิธีการดำเนินการนี้กับผู้รับมอบสิทธิ์ on component hit โดยใช้ฟังก์ชัน add dynamic

103
00:08:43,850 --> 00:08:45,530
‫เราจะทำสิ่งเดียวกันที่นี่

104
00:08:45,530 --> 00:08:52,670
‫และขั้นตอนที่สามคือการสร้างเหตุการณ์ความเสียหายโดยเรียกฟังก์ชันการเล่นเกมของคุณแบบคงที่ ใช้ความเสียหาย

105
00:08:52,670 --> 00:08:56,210
‫กลับไปที่โค้ดและเริ่มตั้งค่านี้กัน

106
00:08:56,600 --> 00:08:56,880
‫ตกลง.

107
00:08:56,960 --> 00:09:01,910
‫เราอยู่ในองค์ประกอบด้านสุขภาพ และเราจะเพิ่มฟังก์ชันเรียกกลับ

108
00:09:01,910 --> 00:09:05,810
‫ตอนนี้สิ่งนี้สามารถเป็นโมฆะและเราสามารถเรียกมันว่าอะไรก็ได้ที่เราชอบ

109
00:09:05,960 --> 00:09:08,450
‫ฉันจะเรียกความเสียหายนี้ที่ได้รับ

110
00:09:08,450 --> 00:09:16,280
‫และเนื่องจากเราผูกสิ่งนี้กับผู้รับมอบสิทธิ์ มันจึงต้องมีพารามิเตอร์อินพุตที่ถูกต้องเหมาะสมสำหรับผู้ได้รับมอบสิทธิ์นั้น

111
00:09:16,310 --> 00:09:23,240
‫ตอนนี้สำหรับฟังก์ชันที่ผูกไว้กับ on จะได้รับความเสียหายจากผู้รับมอบสิทธิ์ รายการพารามิเตอร์อินพุตต้องเป็นดังนี้

112
00:09:23,240 --> 00:09:30,830
‫อย่างแรกคือตัวชี้นักแสดงที่เรียกว่า Damaged Actor และนี่คือสิ่งที่ดูเหมือน

113
00:09:30,830 --> 00:09:33,320
‫เป็นนักแสดงที่ได้รับความเสียหาย

114
00:09:33,350 --> 00:09:38,480
‫ถัดมาเป็นทุ่นที่เรียกว่าดาเมจและนี่คือจำนวนความเสียหายที่เกิดขึ้นจริง

115
00:09:38,510 --> 00:09:45,950
‫ต่อไป เรามีตัวชี้ประเภทความเสียหายที่เรียกว่าประเภทความเสียหาย

116
00:09:46,220 --> 00:09:52,430
‫และเหตุผลที่เรามีพารามิเตอร์อินพุตนี้เป็นเพราะ Unreal Engine มีแนวคิดเกี่ยวกับประเภทความเสียหาย

117
00:09:52,430 --> 00:10:01,100
‫คุณสามารถสร้างประเภทความเสียหายที่กำหนดเองซึ่งมีข้อมูลเพิ่มเติมที่สามารถแจ้งให้คุณทำสิ่งต่าง ๆ ขึ้นอยู่กับประเภทของความเสียหายที่คุณอาจมี

118
00:10:01,100 --> 00:10:02,000
‫ความเสียหายจากไฟไหม้

119
00:10:02,000 --> 00:10:03,260
‫พิษเสียหาย.

120
00:10:03,320 --> 00:10:05,570
‫ความเสียหายจากการระเบิดเป็นต้น

121
00:10:05,570 --> 00:10:13,430
‫และถ้าคุณต้องการใช้ฟังก์ชันแบบกำหนดเองสำหรับความเสียหายแต่ละประเภท คุณจะต้องใช้ฟังก์ชันนั้นในประเภทความเสียหายที่คุณกำหนดเอง

122
00:10:13,460 --> 00:10:19,040
‫ตอนนี้เราไม่ได้สร้างประเภทความเสียหายที่กำหนดเอง แต่เนื่องจากเราผูกฟังก์ชันนี้กับผู้รับมอบสิทธิ์รับความเสียหาย

123
00:10:19,040 --> 00:10:22,940
‫ฟังก์ชันนี้จึงต้องมีพารามิเตอร์อินพุตเหล่านี้

124
00:10:22,940 --> 00:10:24,380
‫ดังนั้นเราจึงรวมไว้ที่นี่

125
00:10:24,410 --> 00:10:32,090
‫ตอนนี้พารามิเตอร์ถัดไปคือตัวชี้คอนโทรลเลอร์ A และสิ่งนี้เรียกว่า instigator และ Unreal Engine

126
00:10:32,090 --> 00:10:33,330
‫Damage System

127
00:10:33,350 --> 00:10:38,050
‫ผู้ยุยงเป็นผู้ควบคุมความเสียหาย

128
00:10:38,060 --> 00:10:46,820
‫ดังนั้นหากความเสียหายนั้นเกิดจากผู้เล่นที่ควบคุมการจำนำในที่สุด ผู้ก่อเหตุก็คือผู้ควบคุมที่ครอบครองตัวจำนำนั้น

129
00:10:46,850 --> 00:10:49,600
‫ตอนนี้ ไม่จำเป็นต้องเป็นผู้ยุยงเสมอไป

130
00:10:49,610 --> 00:10:52,580
‫หากไม่มีสิ่งนี้ก็จะเป็นโมฆะ

131
00:10:52,580 --> 00:11:00,410
‫และตอนนี้ฉันได้รับ squiggles สีแดงเพื่อที่ฉันจะได้ประกาศคลาสตัวควบคุม A ที่นี่ในวงเล็บสำหรับฟังก์ชัน

132
00:11:00,440 --> 00:11:06,980
‫ตอนนี้พารามิเตอร์สุดท้ายคือตัวชี้นักแสดง A และพารามิเตอร์นี้เรียกว่า Damage Causer

133
00:11:07,010 --> 00:11:10,370
‫นี่คือนักแสดงตัวจริงที่สร้างความเสียหาย

134
00:11:10,370 --> 00:11:13,220
‫นี้จะเป็นโพรเจกไทล์เอง

135
00:11:13,310 --> 00:11:20,670
‫ดังนั้นเราจึงได้ประกาศความเสียหายที่ได้รับจากฟังก์ชันเรียกกลับ และเหมือนกับฟังก์ชันเรียกกลับอื่นๆ ของเราเมื่อโจมตี

136
00:11:20,690 --> 00:11:22,970
‫นี่ต้องเป็นฟังก์ชัน u

137
00:11:22,970 --> 00:11:28,550
‫ดังนั้นเราจะให้มาโครฟังก์ชันมันเพื่อให้แน่ใจว่ามันทำงานเมื่อเราผูกกับ on รับความเสียหายใด

138
00:11:28,550 --> 00:11:30,620
‫ๆ ที่ได้รับมอบหมาย

139
00:11:30,950 --> 00:11:35,680
‫และเมื่อเราประกาศแล้ว เราก็พร้อมที่จะกำหนดมันในไฟล์ CPP

140
00:11:35,690 --> 00:11:38,540
‫ดังนั้นในองค์ประกอบด้านสุขภาพ CPP

141
00:11:38,630 --> 00:11:46,970
‫ที่ด้านล่างสุด ฉันจะไปข้างหน้าและให้ส่วนนี้ของฟังก์ชันและมีคุณสมบัติครบถ้วนของฟังก์ชันที่มีชื่อคลาส

142
00:11:46,970 --> 00:11:49,400
‫และตอนนี้เรามีการติดต่อกลับ

143
00:11:49,400 --> 00:11:52,400
‫ตอนนี้เราต้องผูกสิ่งนี้กับผู้รับมอบสิทธิ์

144
00:11:52,400 --> 00:11:59,180
‫แต่ผู้แทนไม่มีอยู่ในองค์ประกอบด้านสุขภาพ แต่มีอยู่ในนักแสดงโดยเฉพาะ

145
00:11:59,180 --> 00:12:05,970
‫เราต้องการผูกสิ่งนี้กับ on รับความเสียหายใด ๆ ผู้รับมอบสิทธิ์ในการจำนำที่เป็นเจ้าขององค์ประกอบนี้

146
00:12:05,990 --> 00:12:11,570
‫แล้วเราจะเข้าถึงเจ้าขององค์ประกอบนี้ได้อย่างไร เพื่อให้เราสามารถผูกมัดกับหนึ่งในผู้รับมอบสิทธิ์ได้

147
00:12:11,570 --> 00:12:19,460
‫เราจะทำสิ่งนี้และเริ่มเล่น และวิธีที่เราสามารถเข้าถึงเจ้าของส่วนประกอบได้คือผ่านฟังก์ชันเจ้าของคอมไพล์

148
00:12:19,460 --> 00:12:23,530
‫หากคุณวางเมาส์เหนือสิ่งนี้ คุณจะเห็นว่ามันส่งคืนตัวชี้นักแสดง

149
00:12:23,540 --> 00:12:27,620
‫นี่คือตัวชี้ไปยังนักแสดงที่เป็นเจ้าขององค์ประกอบ

150
00:12:27,620 --> 00:12:35,630
‫ส่วนประกอบสามารถเป็นเจ้าของโดยจำนำ พวกเขาสามารถเป็นเจ้าของได้โดยนักแสดง ดังนั้นมันจะส่งคืนเจ้าของในรูปแบบของตัวชี้นักแสดง

151
00:12:35,810 --> 00:12:42,890
‫ดังนั้นเราจึงมีฟังก์ชันเรียกกลับของเรา และขั้นตอนที่สองของเราคือการผูกมัดกับผู้รับมอบสิทธิ์เพื่อรับความเสียหายใด

152
00:12:42,890 --> 00:12:46,640
‫ๆ ที่จะมีอยู่ในโรงรับจำนำที่เป็นเจ้าขององค์ประกอบด้านสุขภาพ

153
00:12:46,790 --> 00:12:55,100
‫ดังนั้น เนื่องจากคุณมีประสบการณ์การโทรกลับแบบผูกมัดกับผู้รับมอบสิทธิ์ นี่จึงเป็นความท้าทายของคุณในคลาสองค์ประกอบด้านสุขภาพ

154
00:12:55,100 --> 00:13:04,190
‫ใน Begin Play คุณจะต้องผูกมัดความเสียหายที่ได้รับกับผู้รับมอบสิทธิ์ความเสียหายที่มีอยู่บนเจ้าของส่วนประกอบ

155
00:13:04,190 --> 00:13:08,090
‫ดังนั้นคุณจะเข้าถึงผู้รับมอบสิทธิ์นั้นผ่านฟังก์ชัน get owner

156
00:13:08,090 --> 00:13:13,640
‫กล่าวอีกนัยหนึ่งคุณจะโทรหาเจ้าของและจากนั้นคุณจะเข้าถึงความเสียหายใด ๆ

157
00:13:13,640 --> 00:13:20,660
‫จากนั้นคุณจะรู้วิธีผูกการโทรกลับกับผู้รับมอบสิทธิ์โดยใช้การเพิ่มไดนามิกหากคุณติดอยู่ดูว่าเราผูกการโทรกลับแบบ

158
00:13:20,660 --> 00:13:31,790
‫on hit กับผู้ได้รับมอบหมายการตีบนคอมโพเนนต์หยุดวิดีโอชั่วคราวและผูกความเสียหายที่เกิดขึ้นกับผู้รับความเสียหายที่ได้รับทันที

159
00:13:35,000 --> 00:13:35,360
‫ตกลง.

160
00:13:35,360 --> 00:13:40,610
‫เรากลับมาที่นี่ในองค์ประกอบด้านสุขภาพและเราพร้อมที่จะทำการเชื่อมโยงฟังก์ชันการโทรกลับของเรา

161
00:13:40,610 --> 00:13:47,390
‫ดังนั้นที่นี่และเริ่มเล่น เราจะเข้าถึงเจ้าของโดยใช้ฟังก์ชันเจ้าของ git จากนั้นเราจะใช้ตัวดำเนินการลูกศรเพื่อเข้าถึงผู้รับมอบสิทธิ์ที่เรียก

162
00:13:47,390 --> 00:14:01,520
‫รับความเสียหายและรับความเสียหายใด ๆ มีไดนามิกเพิ่ม ฟังก์ชั่นและเพียงแค่ใช้วัตถุผู้ใช้และชื่อฟังก์ชั่น

163
00:14:01,520 --> 00:14:05,240
‫ตอนนี้วัตถุผู้ใช้เป็นวัตถุที่เรากำลังผูกกับฟังก์ชัน

164
00:14:05,240 --> 00:14:10,130
‫เป็นคลาสที่มีฟังก์ชันเรียกกลับ และนี่จะเป็นสิ่งนี้

165
00:14:10,190 --> 00:14:14,420
‫และสุดท้าย เราก็มีฟังก์ชันเรียกกลับ ซึ่งจะเป็นของคุณ

166
00:14:14,420 --> 00:14:16,790
‫ความเสียหายขององค์ประกอบสุขภาพได้รับ

167
00:14:16,790 --> 00:14:23,690
‫ตอนนี้เราต้องจำที่อยู่ของโอเปอเรเตอร์เพราะมันใช้ที่อยู่ของฟังก์ชันจริงๆ

168
00:14:23,690 --> 00:14:31,460
‫ดังนั้นตอนนี้ความเสียหายที่ได้รับจะถูกผูกไว้กับการรับความเสียหายใด ๆ และถูกเพิ่มเข้าไปในรายการเรียกของผู้รับมอบสิทธิ์นั้น

169
00:14:31,460 --> 00:14:40,970
‫ดังนั้นเมื่อใดก็ตามที่เราสร้างเหตุการณ์ความเสียหาย เราจะได้รับการถ่ายทอดจากตัวแทนรายนี้ ซึ่งจะส่งผลให้ฟังก์ชันรับความเสียหายถูกเรียก

170
00:14:41,570 --> 00:14:50,540
‫โดยสรุปแล้ว เราได้สร้างองค์ประกอบด้านสุขภาพของเราเอง และเราเพิ่มหนึ่งในนั้นลงในทั้งพิมพ์เขียวรถถังและพิมพ์เขียวหอคอย

171
00:14:50,660 --> 00:14:58,130
‫เราได้สร้างฟังก์ชันเรียกกลับที่เรียกว่าความเสียหายที่ได้รับและเราผูกไว้กับผู้รับมอบอำนาจเมื่อได้รับความเสียหาย

172
00:14:58,130 --> 00:15:05,150
‫ขั้นตอนต่อไปคือการสร้างเหตุการณ์ความเสียหายซึ่งจะส่งผลให้การออกอากาศได้รับมอบหมายความเสียหายใด

173
00:15:05,150 --> 00:15:10,640
‫ๆ เพื่อให้ความเสียหายของฟังก์ชันการโทรกลับของเราได้รับการเรียกในการตอบสนอง

174
00:15:10,640 --> 00:15:13,520
‫และเราจะตั้งค่านั้นในวิดีโอหน้า

175
00:15:14,240 --> 00:15:15,140
‫เจอกันเร็วๆนี้ครับ

