﻿1
00:00:04,490 --> 00:00:05,690
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,690 --> 00:00:11,630
‫ในการบรรยายนี้ เราจะเรียนรู้เกี่ยวกับฟังก์ชันที่ไม่ได้อยู่ในพิมพ์เขียวระดับ

3
00:00:11,630 --> 00:00:14,300
‫แต่ในชั้นเรียนพิมพ์เขียวเฉพาะ

4
00:00:14,300 --> 00:00:20,120
‫สิ่งเหล่านี้เรียกว่าฟังก์ชันสมาชิกและมีความสำคัญอย่างยิ่งต่อการเขียนโปรแกรมเชิงวัตถุ

5
00:00:20,120 --> 00:00:22,700
‫มาดูวิธีการทำงานกันเลย

6
00:00:23,150 --> 00:00:31,430
‫ดังนั้นในฟังก์ชันโพรเจกไทล์วางไข่ ในพิมพ์เขียวระดับ เรามีโหนดจำนวนมากที่เกี่ยวข้องกับการเพิ่มแรงกระตุ้น

7
00:00:31,430 --> 00:00:36,830
‫การได้รับทิศทางของแรงกระตุ้น และรับส่วนประกอบตาข่ายแบบคงที่

8
00:00:36,920 --> 00:00:43,610
‫โหนดทั้งหมดเหล่านี้ใช้อินสแตนซ์โพรเจกไทล์ BP ในเชิงลึก

9
00:00:43,610 --> 00:00:55,130
‫คงจะดีไม่น้อยถ้าเราสามารถนำรหัสทั้งหมดนี้และย้ายเข้าไปอยู่ในโพรเจกไทล์ BP เพื่อให้รหัสที่เกี่ยวข้องกับข้อมูลนั้นอยู่กับตัวข้อมูลเอง

10
00:00:55,280 --> 00:00:59,300
‫นั่นคือจุดรวมของการเขียนโปรแกรมเชิงวัตถุ

11
00:00:59,300 --> 00:01:07,040
‫ดังนั้นเราจึงสามารถกำหนดโปรแกรมเชิงวัตถุเป็นฟังก์ชันที่อาศัยอยู่กับข้อมูลที่พวกเขาจัดการ

12
00:01:07,400 --> 00:01:09,080
‫แล้วมันทำงานอย่างไร?

13
00:01:09,080 --> 00:01:13,520
‫เราจะสร้างฟังก์ชันในกรณีเฉพาะของสิ่งต่างๆ ได้อย่างไร

14
00:01:13,940 --> 00:01:20,420
‫วิธีหนึ่งที่เราสามารถทำได้คือไปที่การเปิดคลาสโปรเจ็กไทล์ BP ของเรา และตรวจสอบให้แน่ใจว่าเราคลิกเปิดโปรแกรมแก้ไขพิมพ์เขียวฉบับสมบูรณ์

15
00:01:20,420 --> 00:01:27,020
‫คุณจะเห็นว่าในตัวแก้ไขพิมพ์เขียวฉบับสมบูรณ์นี้มีบานหน้าต่างพิมพ์เขียวของฉันและส่วนฟังก์ชัน

16
00:01:27,020 --> 00:01:35,810
‫ดังนั้นเรา สามารถกดลูกศรบวกที่นี่เพื่อสร้างฟังก์ชันใหม่ในคลาสโปรเจ็กต์ BP

17
00:01:35,810 --> 00:01:41,960
‫และฉันจะตั้งชื่อฟังก์ชันนี้ พิมพ์ชื่อของคุณ และนี่พิมพ์ชื่อของคุณ

18
00:01:41,960 --> 00:01:44,150
‫ฟังก์ชั่นควรทำอย่างนั้น

19
00:01:44,570 --> 00:01:52,460
‫คุณจะเห็นว่าเรามีโหนดที่เริ่มการทำงานของฟังก์ชันนี้ เพื่อให้เราสามารถดึงพินการดำเนินการออกแล้วพิมพ์สตริงการพิมพ์

20
00:01:52,460 --> 00:01:53,810
‫เลยจะพิมพ์ว่า.

21
00:01:53,810 --> 00:01:54,380
‫สวัสดี

22
00:01:54,380 --> 00:01:57,200
‫ไม่ใช่ชื่อของฟังก์ชันนี้ใช่ไหม

23
00:01:57,200 --> 00:01:59,390
‫แต่เราจะจัดการให้เรียบร้อยภายในเวลาไม่กี่วินาที

24
00:01:59,690 --> 00:02:04,130
‫สิ่งที่เรามีที่นี่เรียกว่าฟังก์ชันสมาชิก

25
00:02:04,130 --> 00:02:12,020
‫ฟังก์ชันสมาชิกเป็นฟังก์ชันในคลาสที่มักถูกเรียกใช้ในอินสแตนซ์เฉพาะของคลาส

26
00:02:12,020 --> 00:02:18,320
‫อย่าบอกนะว่าฉันจะโทรพิมพ์ชื่อคุณบนขีปนาวุธ BP ทั้งหมด

27
00:02:18,320 --> 00:02:25,010
‫คุณต้องพูดว่า ฉันต้องการโทร พิมพ์ชื่อของคุณบน BP โพรเจกไทล์หมายเลขหนึ่ง หรือโพรเจกไทล์

28
00:02:25,010 --> 00:02:26,720
‫BP ที่เพิ่งเกิด

29
00:02:26,720 --> 00:02:36,650
‫ดังนั้นถ้าเราไปที่พิมพ์เขียวระดับของเรา สิ่งที่คุณต้องทำคือใช้การอ้างอิงที่ออกมาจากกระสุน

30
00:02:36,650 --> 00:02:38,780
‫BP วางไข่

31
00:02:39,020 --> 00:02:48,050
‫และจากการอ้างอิงนั้น คุณสามารถโทรพิมพ์ชื่อของคุณ และคุณจะเห็นว่ามันเชื่อมต่อกับโหนดอินพุตพิเศษที่เรียกว่า

32
00:02:48,050 --> 00:02:51,920
‫Target โดยอัตโนมัติ

33
00:02:51,920 --> 00:02:54,410
‫และแน่นอนว่าคุณต้องต่อหมุดการดำเนินการของคุณด้วยเช่นกัน

34
00:02:54,410 --> 00:02:58,580
‫ฉันจะขอมันให้เกิดขึ้นหลังจากแรงกระตุ้นของโฆษณา

35
00:02:58,580 --> 00:03:08,750
‫แต่สิ่งที่น่าสนใจเกี่ยวกับโหนดอินพุตเป้าหมายพิเศษนี้คือ ถ้าคุณไปที่โพรเจกไทล์ BP คุณจะเห็นการพิมพ์นั้น

36
00:03:08,750 --> 00:03:12,830
‫ชื่อของคุณไม่มีโหนดอินพุตดังกล่าว

37
00:03:12,830 --> 00:03:14,750
‫เกิดอะไรขึ้นที่นี่?

38
00:03:14,990 --> 00:03:24,230
‫โดยปริยาย ฟังก์ชันสมาชิกใดๆ มีพารามิเตอร์ที่เป็นเป้าหมายปัจจุบันหรืออินสแตนซ์ปัจจุบัน

39
00:03:24,560 --> 00:03:32,030
‫และคุณจะได้รับสิ่งนี้โดยคลิกขวาที่กราฟเหตุการณ์พิมพ์เขียวและพิมพ์ตัวเอง

40
00:03:32,390 --> 00:03:37,910
‫และคุณจะเห็นว่ามีโหนดที่เรียกว่า get reference to self และมันสร้าง self node

41
00:03:37,910 --> 00:03:38,540
‫แบบนี้

42
00:03:38,540 --> 00:03:46,370
‫จากนั้นคุณสามารถใช้การอ้างอิงอ็อบเจ็กต์ตนเองนี้เพื่อรับคุณสมบัติใดๆ ของอ็อบเจ็กต์นี้โดยเฉพาะ

43
00:03:46,370 --> 00:03:53,270
‫ดังนั้นถ้าเราต้องการทราบชื่อโพรเจกไทล์ BP ของเรา คุณสามารถดึงการอ้างอิงตนเองออกแล้วพิมพ์ชื่อที่แสดง

44
00:03:53,270 --> 00:03:57,110
‫ซึ่งเราเคยทำมาก่อน

45
00:03:57,110 --> 00:04:01,250
‫จากนั้นคุณสามารถเชื่อมต่อชื่อที่แสดงลงในสตริงการพิมพ์ของเรา

46
00:04:01,250 --> 00:04:09,890
‫ตอนนี้เมื่อเราเล่นและยิงกระสุนใหม่ คุณจะเห็นว่ามันพิมพ์ชื่อกระสุน และคุณสามารถเห็นกระสุนใหม่ทุกอันที่ฉันสร้าง

47
00:04:10,310 --> 00:04:17,210
‫ชื่อนั้นต่างออกไปเพราะตัวตนที่สมาชิกพูดถึง หน้าที่คือ ตัวตนที่แตกต่างกัน

48
00:04:17,210 --> 00:04:23,750
‫ก็คือโพรเจกไทล์ที่แตกต่างกัน

49
00:04:23,750 --> 00:04:35,270
‫ดังนั้นเราจึงได้เรียนรู้ว่าตัวเองเป็นโหนดที่มีอยู่ในฟังก์ชันสมาชิกซึ่งมักจะชี้ไปที่อินสแตนซ์ปัจจุบันที่เรากำลังใช้อยู่

50
00:04:35,270 --> 00:04:40,190
‫จุดรวมของการดูฟังก์ชันสมาชิกตั้งแต่แรก เหตุผลที่เราเริ่มต้นก็เพราะโหนดเหล่านี้ในพิมพ์เขียวระดับ

51
00:04:40,190 --> 00:04:48,260
‫ตำแหน่งที่เราได้รับสแตติกเมช เราได้เวกเตอร์ไปข้างหน้า แล้วเราเพิ่มแรงกระตุ้นให้กับสิ่งเหล่านี้

52
00:04:48,560 --> 00:04:51,860
‫สิ่งเหล่านี้รู้สึกว่าควรอยู่บนโพรเจกไทล์ BP

53
00:04:51,860 --> 00:04:55,310
‫และนั่นคือสิ่งที่ผมอยากท้าทายให้คุณทำ

54
00:04:55,310 --> 00:04:58,730
‫นี่เป็นความท้าทายที่พัฒนาไปเล็กน้อย แต่เรากำลังเข้าสู่ช่วงท้ายของหัวข้อนี้

55
00:04:58,730 --> 00:05:01,730
‫ดังนั้นฉันจะแนะนำคุณทีละขั้นตอน

56
00:05:02,120 --> 00:05:03,950
‫ดังนั้นเราจะสร้างฟังก์ชันการเปิดตัว

57
00:05:04,060 --> 00:05:05,800
‫ชินบนโพรเจกไทล์ BP

58
00:05:05,800 --> 00:05:07,810
‫สร้างมันขึ้นมาบนโพรเจกไทล์ BP

59
00:05:07,810 --> 00:05:08,890
‫ไปที่ปุ่มบวกนั้น

60
00:05:08,890 --> 00:05:11,080
‫เพิ่มใหม่ ตั้งชื่อมัน เปิดตัว

61
00:05:11,440 --> 00:05:18,700
‫จากนั้นตัดและวางโหนดจากพิมพ์เขียวระดับลงในฟังก์ชันที่สร้างขึ้นใหม่นี้ของคุณและตรวจดูให้แน่ใจว่าคุณได้เชื่อมต่อหมุดการดำเนินการและอื่น

62
00:05:18,700 --> 00:05:22,090
‫ๆ

63
00:05:22,510 --> 00:05:28,000
‫ตอนนี้คุณกำลังจะลองและคอมไพล์สิ่งนี้ซึ่งเราไม่ได้ทำบ่อยนักในพิมพ์เขียว แต่การคอมไพล์เพียงช่วยให้คุณตรวจสอบการสะกดคำเป็นหลัก

64
00:05:28,000 --> 00:05:36,850
‫และตรวจสอบให้แน่ใจว่าไม่มีข้อผิดพลาดใดๆ ที่คอมไพเลอร์ Blueprint สามารถคาดการณ์ได้

65
00:05:36,850 --> 00:05:43,660
‫วิธีที่คุณทำเช่นนี้คือคุณไปที่ปุ่มที่ด้านบนซ้ายและกดคอมไพล์ และหากมีข้อผิดพลาดใด ๆ ข้อผิดพลาดเหล่านี้จะปรากฏขึ้นที่ด้านล่างในบานหน้าต่างเล็ก

66
00:05:43,660 --> 00:05:48,580
‫ๆ ที่เรียกว่าผลลัพธ์ของคอมไพเลอร์

67
00:05:48,580 --> 00:05:57,250
‫คุณจะเห็นว่าฉันคอมไพล์สำเร็จแล้ว แต่ข้อผิดพลาดใดๆ จะปรากฏขึ้นที่นี่ และบางครั้งคุณจะได้รับสีแดงเล็กน้อยบนโหนดเพื่อระบุว่าข้อผิดพลาดอยู่ที่ไหน

68
00:05:57,790 --> 00:06:07,480
‫และฉันต้องการดูว่าคุณสามารถลองและทำความเข้าใจว่าข้อผิดพลาดนั้นพูดอะไร และลองแก้ไขข้อผิดพลาดโดยใช้โหนดตัวเองใหม่ที่เราได้เรียนรู้มา

69
00:06:07,930 --> 00:06:18,130
‫จากนั้นคุณต้องไปข้างหน้าและเรียกใช้ฟังก์ชันนั้นจากพิมพ์เขียวระดับโดยลากออกจากอินสแตนซ์เช่นเดียวกับที่เราทำสำหรับการพิมพ์ของเรา

70
00:06:18,130 --> 00:06:25,960
‫โหนดตัวเองของคุณลากออกจากอินสแตนซ์ของโพรเจกไทล์ใหม่ที่สร้างขึ้นจากโหนดวางไข่และเรียกใช้ฟังก์ชันการเปิดตัว

71
00:06:26,200 --> 00:06:28,360
‫หยุดวิดีโอชั่วคราวและไปกันเลย

72
00:06:31,400 --> 00:06:32,000
‫ตกลง.

73
00:06:32,000 --> 00:06:32,890
‫ยินดีต้อนรับกลับ.

74
00:06:32,900 --> 00:06:39,320
‫ฉันจะไปที่โพรเจกไทล์ BP ของเรา กดปุ่มบวก ถัดจากฟังก์ชันในบานหน้าต่างพิมพ์เขียวของฉัน

75
00:06:39,320 --> 00:06:47,090
‫แล้วพิมพ์ Launch เพื่อตั้งชื่อฟังก์ชันที่กลับไปที่พิมพ์เขียวระดับของเรา ตัดโหนดออก และเข้าไปใน

76
00:06:47,090 --> 00:06:51,740
‫BP โพรเจกไทล์แล้วแปะเข้าไป

77
00:06:52,010 --> 00:06:58,550
‫ตอนนี้ฉันต้องเชื่อมต่อการดำเนินการจากการเปิดตัวเพื่อเพิ่มแรงกระตุ้น และตอนนี้ฉันกำลังจะตี

78
00:06:58,550 --> 00:07:04,850
‫คอมไพล์ และคุณเห็นว่าฉันได้รับข้อผิดพลาดบนตาข่ายแบบคงที่หรือได้รับโหนดตาข่ายแบบคงที่

79
00:07:05,060 --> 00:07:10,550
‫และถ้าคุณดูในผลลัพธ์ของคอมไพเลอร์ มันบอกว่ามันใช้เป้าหมายที่ไม่ถูกต้อง

80
00:07:10,700 --> 00:07:15,290
‫ดังนั้นการกำหนดเป้าหมายอินพุตนี้ที่นี่จึงไม่ถูกต้อง

81
00:07:15,290 --> 00:07:28,460
‫อย่างที่ฉันแนะนำให้คุณทำคือคุณสามารถคลิกขวาและพิมพ์ตัวเองเพื่อรับการอ้างอิงถึงตัวเองแล้วนำตัวเองนั้นไปที่เป้าหมายแทน

82
00:07:28,730 --> 00:07:34,490
‫ตอนนี้ ถ้าคุณกดคอมไพล์อีกครั้ง คุณจะเห็นว่าข้อผิดพลาดหายไปแล้ว และคอมไพล์สำเร็จแล้ว

83
00:07:34,490 --> 00:07:46,010
‫เพราะสิ่งที่เกิดขึ้นคือตอนนี้สามารถรับส่วนประกอบตาข่ายแบบคงที่จากโพรเจกไทล์ปัจจุบันที่เรียกใช้ฟังก์ชันการเรียกทำงานนี้

84
00:07:46,490 --> 00:07:56,060
‫ดังนั้นถ้าเรากลับไปที่พิมพ์เขียวระดับของเราตอนนี้ เราสามารถดึงพินเอาต์พุตจากตัวแสดงการวางไข่ของเรา และเราสามารถพิมพ์

85
00:07:56,060 --> 00:07:59,930
‫Launch เพื่อเรียกใช้ฟังก์ชันการเปิดตัวของเรา

86
00:07:59,930 --> 00:08:06,080
‫คุณสามารถเห็นพินการดำเนินการเชื่อมต่อโดยอัตโนมัติสำหรับฉันแล้วออกหลังจากฟังก์ชั่นเปิดตัว

87
00:08:06,080 --> 00:08:12,500
‫เราสามารถเชื่อมต่อฟังก์ชันการพิมพ์ชื่อของคุณได้หากต้องการ แม้ว่าจะเป็นเพียงเพื่อจุดประสงค์ในการดีบักและสาธิต

88
00:08:12,500 --> 00:08:18,560
‫และถ้าคุณทดสอบ คุณ จะเห็นว่ายังเปิดตัวได้สำเร็จ

89
00:08:18,590 --> 00:08:24,620
‫ยกเว้นตอนนี้รหัสที่เกี่ยวข้องกับการปล่อยชีวิตบนโพรเจกไทล์เอง

90
00:08:24,620 --> 00:08:25,250
‫สิ่งที่ดี

91
00:08:25,250 --> 00:08:30,980
‫เราได้เรียนรู้เกี่ยวกับหนึ่งในแนวคิดหลักของการเขียนโปรแกรมเชิงวัตถุในฟังก์ชันสมาชิกของการบรรยายนี้

92
00:08:30,980 --> 00:08:32,780
‫เจอกันใหม่ตอนหน้าค่ะ

