﻿1
00:00:04,400 --> 00:00:05,210
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,210 --> 00:00:13,790
‫ในการบรรยายนี้ เราจะดูฟังก์ชันพิเศษที่เรียกว่า constructor ที่ช่วยให้เราสามารถกำหนดค่าเริ่มต้นให้กับคุณสมบัติในชั้นเรียนของเรา

3
00:00:13,790 --> 00:00:16,820
‫และเราจะเห็นเมื่อมีการเรียกในตัวแก้ไข

4
00:00:16,820 --> 00:00:18,890
‫ลองดำน้ำในและหา

5
00:00:19,430 --> 00:00:25,430
‫ด้วยองค์ประกอบทริกเกอร์นี้ ฉันต้องการเพิ่มฟังก์ชันองค์ประกอบติ๊กที่นี่ เพื่อให้เราสามารถตรวจสอบว่าส่วนประกอบใด

6
00:00:25,430 --> 00:00:37,010
‫ซึ่งนักแสดงรายอื่นกำลังทับซ้อนองค์ประกอบทริกเกอร์นี้ และเราสามารถเปิดใช้งานได้หากเป็นนักแสดงประเภทที่เหมาะสม

7
00:00:37,550 --> 00:00:39,890
‫ปัญหาคือ เราจะดูว่าปัญหาคืออะไร

8
00:00:39,890 --> 00:00:41,870
‫มาลองใช้ฟังก์ชันติ๊กกัน

9
00:00:41,870 --> 00:00:48,110
‫ถ้าเราไปที่การคว้า H เพื่อดูว่าการประกาศฟังก์ชันองค์ประกอบติ๊กควรเป็นอย่างไร

10
00:00:48,110 --> 00:00:50,690
‫มันจะต้องอยู่ในส่วนสาธารณะ

11
00:00:50,690 --> 00:00:53,450
‫มันเป็นโมฆะเสมือน องค์ประกอบติ๊ก เวลาเดลต้า

12
00:00:53,450 --> 00:00:56,000
‫มีพารามิเตอร์มากมาย ดังนั้นลองคัดลอกดู

13
00:00:56,030 --> 00:01:04,430
‫ไปที่ส่วนหัวขององค์ประกอบติ๊ก เพิ่มเข้าไปใต้การเริ่มต้นเล่นของเรา จากนั้นเราจะคัดลอกคำจำกัดความนั้น

14
00:01:04,430 --> 00:01:08,570
‫นำไปใช้ในองค์ประกอบทริกเกอร์ของเรา

15
00:01:08,570 --> 00:01:13,280
‫CP และสิ่งหนึ่งที่เราจะสังเกตได้คือ มีคำสำคัญสองสามคำที่เราสามารถลบออกได้

16
00:01:13,280 --> 00:01:15,140
‫เราสามารถลบคีย์เวิร์ดเสมือนได้

17
00:01:15,140 --> 00:01:17,030
‫โดยทั่วไปเป็นกฎที่เราสามารถปฏิบัติตามได้

18
00:01:17,030 --> 00:01:19,430
‫นอกจากนี้เรายังสามารถลบคำสำคัญแทนที่

19
00:01:19,430 --> 00:01:22,040
‫สิ่งเหล่านี้ไม่จำเป็นต้องอยู่ในไฟล์ C++

20
00:01:22,190 --> 00:01:24,770
‫เราต้องเพิ่มชื่อคลาส

21
00:01:24,770 --> 00:01:26,330
‫ดังนั้นคุณทริกเกอร์องค์ประกอบทวิภาค

22
00:01:26,330 --> 00:01:27,380
‫โคลอน

23
00:01:27,830 --> 00:01:35,870
‫จากนั้นเราเปลี่ยนเครื่องหมายอัฒภาคด้วยเครื่องหมายวงเล็บ และเราจำเป็นต้องเรียกส่วนประกอบเครื่องหมายขีดสุด

24
00:01:35,870 --> 00:01:43,460
‫เนื่องจากเป็นการโทรที่ค่อนข้างยาว ฉันจะคัดลอกจาก CP ของเราแล้ววางลงในอันนี้

25
00:01:43,460 --> 00:01:49,040
‫ตอนนี้สิ่งที่กำลังทำอยู่ก็คือการเรียกฟังก์ชันองค์ประกอบเห็บของพาเรนต์เป็นหลัก

26
00:01:49,040 --> 00:01:52,880
‫ดังนั้นพาเรนต์ในกรณีนี้จึงเป็นองค์ประกอบกล่องของเรา

27
00:01:52,880 --> 00:02:01,580
‫ดังนั้นจึงเป็นเรื่องสำคัญที่จะเรียกในกรณีที่มีฟังก์ชันที่จำเป็นต้องใช้และเปิดใช้งานเพื่อให้ส่วนประกอบนี้ทำงานได้

28
00:02:01,580 --> 00:02:06,890
‫หากเราไม่ทำอย่างนั้น เรากำลังหลีกเลี่ยงฟังก์ชันการทำงานใดๆ นั้นและสิ่งต่างๆ ที่อาจเสียหายได้

29
00:02:06,890 --> 00:02:12,980
‫สำคัญมากที่ต้องจำไว้เสมอว่าต้องโทรหา super เมื่อเราใช้งาน start, play และ tick

30
00:02:12,980 --> 00:02:13,820
‫component

31
00:02:13,820 --> 00:02:17,750
‫ตอนนี้ ให้คัดลอกข้อความบันทึกของเราจาก Begin Play และใส่ไว้ในองค์ประกอบติ๊ก

32
00:02:17,750 --> 00:02:30,740
‫และแทนที่จะบอกว่าบันทึกคอมโพเนนต์การทำเครื่องหมายและบอกว่าองค์ประกอบการติ๊กกำลังทำเครื่องหมายที่นี่และเราจะดำเนินการต่อและคอมไพล์และดูว่าเห็บนั้นใช้งานได้จริงหรือไม่เมื่อคอมไพเลอร์เสร็จสิ้น

33
00:02:30,740 --> 00:02:34,160
‫ไปกันเถอะ กดปุ่มเล่นเปิดเอาต์พุตของเรา บันทึกและ.

34
00:02:34,190 --> 00:02:37,400
‫อืม ดูเหมือนจะไม่มีอะไรเกิดขึ้นตอนนี้

35
00:02:37,400 --> 00:02:45,530
‫เหตุผลก็คือการเพิ่มประสิทธิภาพอย่างชาญฉลาด ส่วนประกอบส่วนใหญ่จะปิดโดยอัตโนมัติและไม่เป็นจริง

36
00:02:45,530 --> 00:02:49,880
‫ดังนั้นนักแสดงมักจะเปิดใช้งานโดยค่าเริ่มต้น แต่ส่วนประกอบมักจะปิด

37
00:02:49,880 --> 00:02:54,890
‫ที่จริงแล้ว หากเราดูองค์ประกอบอื่นๆ ที่เรามี เช่น การเคลื่อนไหวที่เรารู้ว่าการติ๊กใช้ได้ผล

38
00:02:54,890 --> 00:02:58,610
‫คุณจะเห็นว่าที่ด้านบนสุดของไฟล์มีสิ่งนี้อยู่

39
00:02:58,610 --> 00:03:09,740
‫คุณย้ายฟังก์ชันและมีองค์ประกอบหลักที่ติ๊ก dot B สามารถขีดเท่ากับ true ได้หากคุณไม่ได้ตั้งค่าคุณสมบัตินี้ในคลาส

40
00:03:09,740 --> 00:03:15,320
‫ดังนั้นนี่คือคุณสมบัติของคลาสที่เป็นคุณสมบัติของติ๊กองค์ประกอบหลักแบบคลาสสิกและเป็นโครงสร้างที่มีคุณสมบัติ

41
00:03:15,320 --> 00:03:19,340
‫B ที่สามารถขีดได้ภายในนั้น

42
00:03:19,490 --> 00:03:28,490
‫สิ่งที่เรากำลังทำอยู่นี้คือ เรากำลังตั้งค่าเริ่มต้นนี้ในคลาสผู้เสนอญัตติเมื่อเราสร้างมันขึ้นมา

43
00:03:28,490 --> 00:03:29,660
‫นั่นคือสิ่งที่เป็นฟังก์ชันนี้

44
00:03:29,660 --> 00:03:37,100
‫มันถูกเรียกว่า constructor และมันเป็นฟังก์ชั่นที่ถูกเรียกเมื่อใดก็ตามที่เราสร้างองค์ประกอบผู้เสนอญัตติใหม่เพื่อตั้งค่าเริ่มต้นโดยอัตโนมัติ

45
00:03:37,100 --> 00:03:44,750
‫เราสามารถตั้งค่าเริ่มต้นบางส่วนในไฟล์ส่วนหัวเหมือนที่เราทำกับควรจะย้ายเวลา

46
00:03:44,750 --> 00:03:51,800
‫แต่ทางเลือกอื่นที่จะทำในไฟล์ส่วนหัวก็คือ เราสามารถตั้งค่าคุณสมบัติเหล่านี้ในตัวสร้างได้

47
00:03:51,800 --> 00:03:57,350
‫ตอนนี้ ฉันต้องการให้คุณสังเกตไวยากรณ์ที่นี่ เราไปในการย้ายไฟล์ส่วนหัว

48
00:03:57,350 --> 00:04:03,320
‫คุณจะเห็นว่า Constructor มีชื่อเหมือนกับคลาส

49
00:04:03,320 --> 00:04:12,350
‫ดังนั้นผู้เสนอญัตติของคุณจึงเป็นชื่อคลาสสำหรับองค์ประกอบผู้เสนอญัตติของเราและตัวสร้างนั้นเรียกอีกอย่างว่าผู้เสนอญัตติคุณ

50
00:04:12,350 --> 00:04:14,630
‫ไม่มีประเภทการส่งคืนเช่นกัน

51
00:04:14,630 --> 00:04:19,490
‫ไม่มีเหตุผลที่จะส่งคืนสิ่งใดเพราะเรากำลังสร้างวัตถุใหม่

52
00:04:19,490 --> 00:04:22,820
‫เรากำลังทำให้คลาสนี้เกิดขึ้น

53
00:04:22,820 --> 00:04:30,560
‫ทั้งหมดที่เราต้องการคือการเข้าถึงคุณสมบัติของคลาสนี้ และสังเกตว่ามันถูกตั้งค่าเป็นสาธารณะ

54
00:04:30,560 --> 00:04:35,180
‫ดังนั้นมันจึงอยู่ในส่วนสาธารณะของคำจำกัดความคลาสของเรา

55
00:04:35,180 --> 00:04:39,470
‫ดังนั้นฉันอยากจะท้าให้คุณเปิดใช้งานการติ๊กสำหรับตัวคุณเอง

56
00:04:39,470 --> 00:04:44,720
‫ดังนั้น คุณจะสร้างคอนสตรัคเตอร์ในส่วนหัวและจำไว้ว่า syntax ที่เราเคยเห็นทั้งใน

57
00:04:44,720 --> 00:04:52,130
‫Mover H และ grab ของ H คุณจะเปิดใช้งานการติ๊กอย่างที่เราเห็นอีกครั้ง ในองค์ประกอบอื่นๆ เหล่านั้นในไฟล์

58
00:04:52,130 --> 00:04:54,620
‫CP

59
00:04:54,620 --> 00:04:57,140
‫ดังนั้นคุณสามารถคัดลอกวิธีการทำ

60
00:04:57,290 --> 00:05:02,450
‫คุณสามารถล็อกจากคอนสตรัคเตอร์ได้เช่นกันเพื่อลองดูว่าจะมีการเรียกเมื่อใด

61
00:05:02,450 --> 00:05:03,610
‫เหมือนเริ่มเล่น?

62
00:05:03,780 --> 00:05:07,290
‫หรือถูกเรียกก่อนเริ่มเล่นหรืออะไร?

63
00:05:07,320 --> 00:05:09,840
‫ไปและหยุดวิดีโอและได้ไป

64
00:05:12,920 --> 00:05:13,310
‫เคย์.

65
00:05:13,310 --> 00:05:14,100
‫ยินดีต้อนรับกลับ.

66
00:05:14,120 --> 00:05:21,320
‫เราจะไปที่องค์ประกอบตรีโกณฯ ซึ่งจะสร้างส่วนสาธารณะขึ้นใหม่ที่นี่

67
00:05:22,070 --> 00:05:26,630
‫เรากำลังจำโคลอนในตอนท้าย แล้วเราต้องเรียกมันว่าเหมือนกับคลาสเดียวกันทุกประการ

68
00:05:26,630 --> 00:05:28,040
‫นั่นไม่ใช่องค์ประกอบทริกเกอร์

69
00:05:28,040 --> 00:05:33,320
‫ไม่ใช่คุณทริกเกอร์ แต่เป็นองค์ประกอบทริกเกอร์แบบเต็ม

70
00:05:33,320 --> 00:05:41,600
‫แล้วเราไม่มีอาร์กิวเมนต์ใดๆ กับคอนสตรัคเตอร์นี้ เราจึงใส่วงเล็บว่าง แล้วใส่เครื่องหมายอัฒภาคต่อท้ายบรรทัด

71
00:05:41,600 --> 00:05:46,880
‫ตอนนี้เราสามารถไปที่ไฟล์ CPP และเราสามารถดำเนินการได้ที่นี่

72
00:05:46,880 --> 00:05:48,290
‫อีกครั้ง เราไม่ต้องการประเภทการส่งคืน

73
00:05:48,290 --> 00:05:58,550
‫ดังนั้นมันจึงเป็นเพียงแค่คุณทริกเกอร์องค์ประกอบทวิภาค ทวิภาค คุณทริกเกอร์คอมโพเนนต์ซ้ำ ๆ เล็กน้อย แต่นั่นเป็นวิธีการทำงาน

74
00:05:58,550 --> 00:06:07,280
‫จากนั้นเราใส่วงเล็บปีกกาและที่นี่เราสามารถทำโค้ดการตั้งค่าของเราเพื่อกำหนดค่าเริ่มต้นให้กับอินสแตนซ์ของคลาสได้

75
00:06:07,280 --> 00:06:12,530
‫ดังนั้นหากเราไปที่การคว้า CPP และดูว่ามันกำลังทำอะไรอยู่ คุณจะเห็นว่ามีองค์ประกอบหลักที่ขีดจุด

76
00:06:12,530 --> 00:06:16,670
‫B ที่สามารถขีดได้เท่ากับจริง

77
00:06:16,670 --> 00:06:17,840
‫เลยพิมพ์ออกมา

78
00:06:17,840 --> 00:06:23,540
‫ขีดองค์ประกอบหลักจุด B สามารถขีดได้

79
00:06:23,540 --> 00:06:31,520
‫B เป็นเพียงคำนำหน้าที่เรามักใช้เมื่อสิ่งที่มีชุดประเภทบูลีนเท่ากับจริงด้วยตัวพิมพ์เล็ก t

80
00:06:31,670 --> 00:06:39,980
‫ดังนั้น เนื่องจากการเปลี่ยนแปลงใน Constructor ไม่ได้ถูกเผยแพร่อย่างถูกต้องใน Live Coding เสมอไป ฉันจะปิดตัวแก้ไข

81
00:06:40,100 --> 00:06:47,000
‫ฉันจะสร้างใหม่จากภายในรหัส Visual Studio จากนั้นฉันจะเปิดใหม่จากไฟล์โครงการของสหภาพยุโรป

82
00:06:47,000 --> 00:06:54,890
‫เมื่อเสร็จแล้ว ฉันจะไปต่อและกดเล่น ดูบันทึกผลลัพธ์ของเรา และแน่นอนว่าเราจะเห็นว่าองค์ประกอบทริกเกอร์กำลังฟ้องอยู่

83
00:06:55,130 --> 00:07:00,230
‫ดังนั้นฉันจะลบข้อความบันทึกนั้นออกเพราะมันน่ารำคาญและปิดบันทึกผลลัพธ์ในโค้ด

84
00:07:00,230 --> 00:07:04,460
‫Visual Studio ลบข้อความบันทึกนี้ในองค์ประกอบการทำเครื่องหมาย

85
00:07:04,460 --> 00:07:06,020
‫เราจะเห็นว่ามันใช้งานได้แล้ว

86
00:07:06,410 --> 00:07:10,910
‫และสิ่งที่เราอยากทำคือทำบันทึกในตัวสร้างของเรา

87
00:07:11,720 --> 00:07:21,680
‫ลองทำบันทึกใหม่ว่ากำลังสร้าง ดูว่าตอนนี้การเข้ารหัสแบบสดสามารถรับมันได้หรือไม่ จากนั้นเราจะไปที่บันทึกผลลัพธ์ของเราและดูทันที

88
00:07:21,680 --> 00:07:23,750
‫ไม่มีอะไรปรากฏขึ้นที่นี่

89
00:07:24,170 --> 00:07:28,370
‫ถ้าฉันไปข้างหน้าและกดเล่น ฉันจะดูบันทึกผลลัพธ์ของฉัน

90
00:07:28,370 --> 00:07:33,980
‫ฉันเห็นข้อความบันทึกว่าองค์ประกอบทริกเกอร์ยังมีชีวิตอยู่และทราบล่วงหน้านาน

91
00:07:33,980 --> 00:07:39,020
‫ที่จริงแล้ว คุณจะเห็นได้ว่ากำลังสร้างหนทางข้างหน้า เมื่อมันเป็นเพียงการสร้างโลก

92
00:07:39,020 --> 00:07:46,400
‫มันเริ่มสร้างเร็วมากก่อนที่จะเริ่มเล่นเพราะเราต้องเตรียมโลกทั้งใบให้พร้อมก่อนที่เราจะเริ่มเล่น

93
00:07:46,400 --> 00:07:51,440
‫มันเลยเกิดขึ้นเมื่อเรากดเล่น แต่จริงๆ แล้ว มันเกิดขึ้นในตัวแก้ไขด้วย

94
00:07:51,440 --> 00:07:59,300
‫ดังนั้น ถ้าฉันเลือกนักแสดงที่นี่ แล้วเพิ่มส่วนประกอบเข้าไปและเพิ่มทริกเกอร์ของเรา ให้ดูบันทึกผลลัพธ์ของฉัน

95
00:07:59,300 --> 00:08:03,050
‫จากนั้นคุณจะเห็นข้อความการสร้างถูกพิมพ์ออกมาจริง

96
00:08:03,050 --> 00:08:10,490
‫ดังนั้นเราจึงต้องระวังสิ่งที่เราทำใน Constructor ของเรา เพราะมันจะถูกเรียกจริงๆ ว่าโค้ด C++ จะถูกเรียกเมื่อเราแก้ไข

97
00:08:10,490 --> 00:08:14,540
‫ไม่ได้แม้แต่เล่นเกมของเรา

98
00:08:14,540 --> 00:08:20,000
‫วัตถุเหล่านี้กำลังถูกสร้างขึ้นและดังนั้นจึงจำเป็นต้องเรียกตัวสร้าง

99
00:08:20,090 --> 00:08:30,170
‫ฉันจะดำเนินการต่อและลบทริกเกอร์อีกครั้งและล้างข้อมูลเล็กน้อยโดยลบข้อความบันทึกการสร้างของเราและข้อความบันทึกการเริ่มเล่นของเราด้วย

100
00:08:30,170 --> 00:08:30,800
‫สิ่งที่ดี

101
00:08:30,800 --> 00:08:37,430
‫ดังนั้นในการบรรยายนี้ เราได้เห็นวิธีที่เราสามารถตั้งค่าคอมโพเนนต์ของเราเองเพื่อให้เกือบจะเหมือนกับที่สร้างในเทมเพลตสำหรับคอมโพเนนต์ฉากและคอมโพเนนต์

102
00:08:37,430 --> 00:08:47,720
‫ACT เราได้เห็นวิธีใช้คอนสตรัคเตอร์เพื่อกำหนดค่าเริ่มต้นให้กับ คุณสมบัติในชั้นเรียนของเรา

103
00:08:47,720 --> 00:08:49,610
‫เจอกันใหม่ตอนหน้าค่ะ

