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