﻿1
00:00:04,830 --> 00:00:05,820
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,820 --> 00:00:16,170
‫ในการบรรยายนี้ เราจะเรียนรู้เกี่ยวกับออบเจกต์และวิธีที่เราสามารถใช้ฟังก์ชันการทำงานของออบเจ็กต์และข้อมูลของออบเจกต์เพื่อเริ่มสร้างโปรแกรมที่น่าสนใจ

3
00:00:16,170 --> 00:00:17,700
‫มาดำดิ่งกัน

4
00:00:18,910 --> 00:00:24,430
‫เรามาเริ่มการบรรยายนี้ด้วยการแนะนำแนวคิดใหม่ แนวคิดของวัตถุ

5
00:00:24,430 --> 00:00:27,670
‫มีความสำคัญอย่างยิ่งต่อภาษาการเขียนโปรแกรมจำนวนมาก

6
00:00:27,940 --> 00:00:37,120
‫ดังนั้น วัตถุจึงเป็นสิ่งที่คุณต้องการเป็นตัวแทนของบางสิ่ง เช่น ในเกมที่คุณอาจมีนักผจญภัย

7
00:00:37,120 --> 00:00:46,600
‫เขาเป็นวัตถุในโลกของคุณและเขาอาจมีข้อมูลบางอย่างที่แสดงถึงสิ่งที่เขาเป็น สิ่งต่างๆ เช่น เขาเป็น คะแนนประสบการณ์

8
00:00:46,600 --> 00:00:51,490
‫เป็นต้น หรือบางทีระดับของเขา เขาเป็นนักผจญภัยระดับสอง

9
00:00:51,490 --> 00:00:57,520
‫ข้อมูลเช่นนั้นคือข้อมูลที่ประกอบขึ้นเป็นนักผจญภัย แต่นั่นไม่ใช่ทั้งหมดนักผจญภัยที่เป็น

10
00:00:57,520 --> 00:01:05,050
‫นักผจญภัยก็มีฟังก์ชันบางอย่างเช่นกัน เช่น ความสามารถในการยิงธนู เช่น ความสามารถในการกระโดด

11
00:01:05,050 --> 00:01:06,670
‫และอื่นๆ

12
00:01:07,210 --> 00:01:09,130
‫มีสิ่งอื่นที่สามารถเป็นวัตถุได้

13
00:01:09,130 --> 00:01:15,310
‫ตัวอย่างเช่น เราสามารถนำเสนอสิ่งต่าง ๆ ในโลกแห่งความเป็นจริง ในคอมพิวเตอร์ เช่น เครื่องเล่น

14
00:01:15,310 --> 00:01:23,980
‫และเราสามารถจัดเก็บคุณสมบัติที่เกี่ยวข้องกับผู้เล่น เช่น ผู้เล่นใช้คอนโทรลเลอร์ ผู้เล่นหมายเลขหนึ่งหรือหมายเลขสอง

15
00:01:24,010 --> 00:01:29,680
‫ข้อมูลประเภทดังกล่าวและฟังก์ชันที่เกี่ยวข้อง เช่น รับข้อมูลปัจจุบัน

16
00:01:29,890 --> 00:01:35,380
‫พวกเขากำลังกดแป้นเว้นวรรคค้างไว้หรือไม่ ตัวอย่างเช่น รับระดับทักษะของผู้เล่น จากนั้นคุณสามารถมีวัตถุที่เป็นนามธรรมได้อย่างสมบูรณ์

17
00:01:35,380 --> 00:01:38,650
‫สิ่งต่างๆ เช่น รายการ

18
00:01:38,650 --> 00:01:44,470
‫คุณสามารถมีรายการที่มีรายการหนึ่ง สอง สาม สี่ หรืออาจมีรายการใดๆ ที่คุณชอบอยู่ในนั้น

19
00:01:44,470 --> 00:01:52,630
‫ข้อมูลอาจเปลี่ยนแปลงได้ แต่อาจมีฟังก์ชันบางอย่างด้วย เช่น เอารายการสุดท้ายออกจากรายการหรือเพิ่มไปยังส่วนท้ายของรายการ

20
00:01:52,630 --> 00:01:55,180
‫คุณจึงเห็นได้ว่าสิ่งของต่างๆ นั้นยืดหยุ่นมาก

21
00:01:55,180 --> 00:01:58,660
‫สามารถใช้เพื่อแสดงสิ่งต่าง ๆ มากมาย

22
00:01:58,660 --> 00:02:05,260
‫และคุณจะสังเกตเห็นว่าการทำงานที่ด้านล่างของอ็อบเจ็กต์เหล่านี้คือสิ่งที่โหนดเหล่านั้นเป็น

23
00:02:05,260 --> 00:02:08,410
‫หรือโหนดจำนวนมากที่อยู่ในพิมพ์เขียว

24
00:02:08,410 --> 00:02:15,100
‫ดังนั้นพวกเขาจึงเริ่มจับคู่เล็กน้อยระหว่างอ็อบเจ็กต์และฟังก์ชันการทำงาน

25
00:02:15,490 --> 00:02:15,760
‫ตกลง.

26
00:02:15,760 --> 00:02:17,950
‫ดังนั้นเราจึงได้แนะนำแนวคิดใหม่ๆ มากมายที่นั่น

27
00:02:17,950 --> 00:02:19,810
‫มาสรุปกันสักหน่อย

28
00:02:19,810 --> 00:02:24,550
‫ดังนั้นเราจึงกล่าวว่าอ็อบเจ็กต์คือชุดของข้อมูลและการทำงาน

29
00:02:24,940 --> 00:02:28,930
‫สิ่งที่เราอาจไม่ได้ตระหนักคือนักแสดงเป็นวัตถุจริงๆ

30
00:02:28,930 --> 00:02:31,930
‫นักแสดงเป็นวัตถุที่สามารถไปได้ในระดับหนึ่ง

31
00:02:31,930 --> 00:02:39,820
‫และคุณสามารถดูสิ่งนี้ได้หากคุณเข้าสู่ระดับของคุณ คุณเลือกคิวบ์ คุณจะเห็นว่ามีข้อมูลมากมายในบานหน้าต่างรายละเอียด

32
00:02:39,820 --> 00:02:45,370
‫และอย่างที่เราจะได้เห็นกันในอีกสักครู่ มีฟังก์ชันมากมายในรูปแบบโหนดในพิมพ์เขียวเช่นกัน

33
00:02:46,090 --> 00:02:47,380
‫แล้วมีส่วนประกอบ

34
00:02:47,380 --> 00:02:50,800
‫ตอนนี้ส่วนประกอบที่เรายังไม่ได้ลงรายละเอียดมาก่อน แต่นี่คือ

35
00:02:51,070 --> 00:02:57,610
‫พวกเขาเป็นวัตถุที่สามารถไปถึงนักแสดงได้ในขณะที่นักแสดงไปถึงระดับส่วนประกอบนั้นก็ขึ้นอยู่กับตัวนักแสดงเอง

36
00:02:57,610 --> 00:03:04,180
‫ดังนั้นเมื่อเลือก Cube คุณจะเห็นที่ด้านบนของบานหน้าต่างรายละเอียดว่ามีส่วนประกอบตาข่ายแบบคงที่นี้

37
00:03:04,540 --> 00:03:11,080
‫หากคุณคลิกที่นั้นจริง ๆ คุณจะเห็นว่าบานหน้าต่างรายละเอียดได้รับชุดรายละเอียดที่จำกัด

38
00:03:11,080 --> 00:03:19,240
‫มันไม่ได้แสดงคุณสมบัติทั้งหมดที่มีอยู่ในตัวแสดง Cube แต่แสดงเฉพาะชุดย่อยของคุณสมบัติที่เป็นขององค์ประกอบตาข่ายแบบคงที่

39
00:03:19,240 --> 00:03:28,090
‫ซึ่งโดยพื้นฐานแล้วองค์ประกอบที่รับผิดชอบในการบอกเราถึงวิธีการวาดลูกบาศก์

40
00:03:28,360 --> 00:03:34,330
‫ตอนนี้ ออบเจ็กต์เหล่านี้มักจะมีข้อมูลมากกว่านี้ ซึ่งหมายความว่าคอมพิวเตอร์ของคุณอาจใช้งานหนักได้

41
00:03:34,330 --> 00:03:40,600
‫และแน่นอนว่าต้องคัดลอกออบเจ็กต์เหล่านี้ไปรอบๆ

42
00:03:40,720 --> 00:03:55,690
‫ดังนั้นแทนที่จะทำเช่นนั้น เราใช้โครงสร้างที่ชาญฉลาดที่เรียกว่าการอ้างอิง ซึ่งโดยพื้นฐานแล้วเป็นเพียงที่อยู่หรือฉันจะไปหาวัตถุนี้ในหน่วยความจำของคอมพิวเตอร์ได้ที่ไหนเพื่อที่ฉันจะได้ไม่ต้องเคลื่อนย้ายวัตถุตลอดเวลา

43
00:03:55,690 --> 00:04:04,150
‫เราจะอธิบายเพิ่มเติมเล็กน้อยเกี่ยวกับวิธีการทำงานจริงในหน่วยความจำเมื่อเราไปถึง C++ แต่สำหรับตอนนี้ ก็เพียงพอแล้วที่จะรู้ว่ามันเป็นเพียงที่อยู่

44
00:04:04,720 --> 00:04:09,730
‫สิ่งที่เราทำได้ เช่น มาดู Unreal กัน

45
00:04:09,730 --> 00:04:17,110
‫หากเราอยู่ในระดับหลักและต้องการใช้ฟังก์ชันบางอย่างกับคิวบ์ของเรา สิ่งที่ฉันทำได้คือเลือกคิวบ์ในฉาก

46
00:04:17,110 --> 00:04:22,300
‫จากนั้นฉันสามารถไปที่พิมพ์เขียวระดับของฉันแล้วคลิกขวา จากนั้นฉันก็ทำได้

47
00:04:22,300 --> 00:04:27,790
‫คลิกสร้างการอ้างอิงถึง Cube และสร้างโหนดใหม่

48
00:04:27,850 --> 00:04:29,230
‫เมื่อกี้ทำอะไรน่ะ?

49
00:04:29,230 --> 00:04:33,010
‫นั่นก็บอกเราอยู่ว่านี่คือที่อยู่ของคิวบ์

50
00:04:33,010 --> 00:04:35,980
‫หากคุณต้องการทำอะไรกับลูกบาศก์ คุณจะพบได้ที่นี่

51
00:04:36,220 --> 00:04:41,260
‫จะเกิดอะไรขึ้นใน Blueprint เมื่อคุณเปิดเกม มันจะไปหาลูกบาศก์นั้น

52
00:04:41,260 --> 00:04:48,760
‫จากนั้นคุณสามารถถามคำถามหรือใช้ฟังก์ชันการทำงานบนคิวบ์ได้ เช่น เฮ้ ส่วนประกอบสแตติกเมชของคุณอยู่ที่ไหน

53
00:04:48,760 --> 00:04:51,280
‫และเขาก็ไป โอเค ส่วนประกอบตาข่ายคงที่ตรงนั้น

54
00:04:51,280 --> 00:04:56,530
‫เราจึงไปหาส่วนประกอบตาข่ายแบบคงที่ จากนั้นเราสามารถถามคำถามนั้นได้ และมันบอกว่า เฮ้

55
00:04:56,530 --> 00:04:57,370
‫คุณชื่ออะไร

56
00:04:57,370 --> 00:04:58,600
‫ส่วนประกอบตาข่ายแบบคงที่

57
00:04:58,600 --> 00:05:01,540
‫และองค์ประกอบสแตติกเมชสามารถพูดได้ว่า สวัสดี ฉันชื่อบ๊อบ

58
00:05:01,540 --> 00:05:09,610
‫นั่นคือวิธีที่เราสามารถใช้ข้อมูลอ้างอิงเหล่านี้และใช้ฟังก์ชันการทำงานของออบเจ็กต์ต่างๆ เพื่อไปยังที่ที่เราต้องการไป

59
00:05:09,610 --> 00:05:17,770
‫ตอนนี้ เราได้กล่าวว่าการอ้างอิงคือตำแหน่งที่จะค้นหาวัตถุ และตอนนี้สิ่งอื่นที่ควรค่าแก่การชี้ให้เห็นก็คือหมุดข้อมูล

60
00:05:17,770 --> 00:05:18,250
‫ก. คืออะไร

61
00:05:18,590 --> 00:05:21,320
‫Pinn เอาละ การอ้างอิงคิวบ์นี้มีเพียงหนึ่งเดียว

62
00:05:21,320 --> 00:05:26,650
‫สิ่งกลมสีน้ำเงินเล็กๆ ทางด้านขวามือนี้คือดาต้าพิน

63
00:05:26,660 --> 00:05:31,220
‫เราเคยเห็นสิ่งเหล่านี้มาก่อนแล้วในโหนดสตริงการพิมพ์ทางด้านซ้ายมือ และเป็นสีม่วง

64
00:05:31,370 --> 00:05:37,430
‫และหมุดเหล่านี้แตกต่างจากหมุดประเภทอื่น ๆ ที่เราเคยเห็นอย่างไร หมุดสีขาวเหล่านี้อย่างไร

65
00:05:37,580 --> 00:05:42,680
‫ดาต้าพินคืออินพุตหรือเอาต์พุตของข้อมูลสำหรับโหนด

66
00:05:42,680 --> 00:05:47,840
‫ดังนั้นโหนด หากอยู่ทางด้านซ้ายมือ มันคืออินพุต มันคือข้อมูลที่โหนดสามารถทำงานด้วยได้

67
00:05:47,870 --> 00:05:52,100
‫หากอยู่ทางด้านขวามือ แสดงว่า Node สร้างขึ้นมา

68
00:05:52,100 --> 00:06:00,650
‫ดังนั้นในกรณีของคิวบ์ โหนดนี้จะสร้างการอ้างอิงถึงตัวแสดงคิวบ์ จากนั้นจึงใช้พินการดำเนินการ

69
00:06:00,650 --> 00:06:06,530
‫สิ่งเหล่านี้เป็นสิ่งที่เรียกว่าหมุดสีขาวจริงๆ เพื่อแยกความแตกต่างจากหมุดข้อมูล

70
00:06:06,530 --> 00:06:09,710
‫และยังคงใช้งานได้เมื่อต้องเรียกใช้โหนด

71
00:06:09,710 --> 00:06:12,440
‫ดังนั้นดาต้าพินจึงเป็นสิ่งที่ใช้รันโหนดด้วย

72
00:06:12,440 --> 00:06:14,840
‫พินการดำเนินการคือเมื่อเรียกใช้

73
00:06:14,840 --> 00:06:21,470
‫ด้วยข้อมูลทั้งหมดนั้น เรามาลองใช้ฟังก์ชันของออบเจกต์เหล่านี้กัน

74
00:06:21,470 --> 00:06:23,360
‫ดังนั้นเราจึงมีการอ้างอิงลูกบาศก์ของเรา

75
00:06:23,360 --> 00:06:30,290
‫ถ้าเราลากออกจากพินอ้างอิงคิวบ์ คุณสามารถใช้ฟังก์ชันทั้งหมดที่คิวบ์มีได้

76
00:06:30,290 --> 00:06:38,390
‫อย่างที่ฉันพูด เรามีส่วนประกอบบนคิวบ์ที่เรียกว่าส่วนประกอบตาข่ายแบบคงที่ และฉันต้องการดำเนินการต่อและรับการอ้างอิงถึงสิ่งนั้น

77
00:06:38,390 --> 00:06:47,030
‫ดังนั้นเราจะมองหาส่วนประกอบตาข่ายแบบคงที่และรายการที่สำคัญที่สุดสำหรับฉันคือส่วนประกอบตาข่ายแบบคงที่

78
00:06:47,030 --> 00:06:48,050
‫ฉันสามารถคลิกที่มัน

79
00:06:48,050 --> 00:06:56,480
‫เราได้รับโหนดใหม่โดยอินพุตเป็นข้อมูลอ้างอิงคิวบ์และเอาต์พุตเป็นข้อมูลอ้างอิงถึงส่วนประกอบตาข่ายแบบคงที่

80
00:06:56,480 --> 00:07:01,700
‫ดังนั้นหากเราลากออกจากสิ่งนั้น เราสามารถขอฟังก์ชันการทำงานของส่วนประกอบตาข่ายแบบคงที่ได้

81
00:07:01,700 --> 00:07:11,330
‫เช่น รับชื่อที่แสดง และนั่นทำให้เราได้รับอินพุตของการอ้างอิงส่วนประกอบตาข่ายแบบคงที่ และใช้ฟังก์ชันของการรับชื่อที่แสดง

82
00:07:11,330 --> 00:07:20,330
‫แล้วส่งกลับ สตริงหรือค่าข้อความที่เราสามารถพิมพ์โดยใช้โหนดสตริงการพิมพ์

83
00:07:20,330 --> 00:07:30,680
‫ดังนั้นเราสามารถลากออกแล้วพิมพ์สตริงการพิมพ์ จากนั้นเราสามารถเชื่อมต่อโหนดการดำเนินการเพื่อให้ทำงานหลังจากสตริงการพิมพ์อีกสองสตริงที่เริ่มเล่น

84
00:07:31,010 --> 00:07:33,710
‫คุณจะสังเกตเห็นว่าบางโหนดเหล่านี้ไม่มีพินการดำเนินการ

85
00:07:33,710 --> 00:07:34,730
‫ที่อาจสับสน

86
00:07:34,730 --> 00:07:35,870
‫พวกเขาจะวิ่งเมื่อไหร่?

87
00:07:35,870 --> 00:07:45,050
‫พวกมันจะทำงานเมื่อใดก็ตามที่พิมพ์เขียวเห็นว่าเหมาะสม โดยพื้นฐานแล้วเมื่อใดก็ตามที่จำเป็นโดยโหนดที่มีพินการดำเนินการ

88
00:07:45,050 --> 00:07:50,090
‫ดังนั้นถ้าเรากดเล่น คุณจะเห็นว่ามันปรากฏขึ้นพร้อมกับชื่อ cube static mesh component zero

89
00:07:50,090 --> 00:07:51,170
‫หรืออะไรทำนองนั้น

90
00:07:51,170 --> 00:07:52,400
‫มันเป็นต้นไม้การเขียนโปรแกรมบิต

91
00:07:52,430 --> 00:07:56,210
‫ไม่ใช่ มันไม่ใช่บ๊อบ มันเกี่ยวข้องมากกว่านั้นนิดหน่อย

92
00:07:56,210 --> 00:08:02,240
‫แต่คุณสามารถเห็นได้ว่าเราได้เขียนโค้ดโดยพื้นฐานแล้วในกลุ่มคำถามที่ฉันมีบนสไลด์ของฉัน

93
00:08:02,390 --> 00:08:09,200
‫ดังนั้นฉันจึงขอท้าให้คุณไปข้างหน้าและรับมวลของส่วนประกอบตาข่ายแบบคงที่ของเรา

94
00:08:09,200 --> 00:08:11,270
‫เราได้กำหนดค่าไว้ในอดีต

95
00:08:11,270 --> 00:08:15,950
‫หากคุณเข้าไปในระดับและดูที่บานหน้าต่างรายละเอียด คุณจะเห็นว่าคุณสมบัติทางฟิสิกส์อย่างหนึ่งคือมวล

96
00:08:15,950 --> 00:08:20,540
‫และเราได้กำหนดค่านั้นเป็นส่วนของข้อมูลในองค์ประกอบตาข่ายแบบคงที่

97
00:08:20,660 --> 00:08:26,540
‫ถ้าคุณลบ get display name node และลากองค์ประกอบ static mesh ออก คุณควรจะสามารถค้นหา

98
00:08:26,540 --> 00:08:33,470
‫get mass ได้ และนั่นควรได้รับชิ้นส่วนของข้อมูลในองค์ประกอบ static mesh และดูว่าคุณสามารถพิมพ์ค่านั้นโดยใช้

99
00:08:33,470 --> 00:08:39,920
‫โหนดสตริงการพิมพ์ของเราหยุดวิดีโอชั่วคราวแล้วเริ่มเลย

100
00:08:43,330 --> 00:08:43,930
‫ตกลง.

101
00:08:43,930 --> 00:08:44,800
‫ยินดีต้อนรับกลับ.

102
00:08:44,830 --> 00:08:53,680
‫ดังนั้นถ้าเรากลับไปที่พิมพ์เขียว เพียงแค่ลบชื่อที่แสดงของเรา ลากองค์ประกอบตาข่ายแบบคงที่และค้นหามวล

103
00:08:53,890 --> 00:08:55,990
‫จากนั้นเราสามารถดึงโหนดนั้นเข้าไปได้

104
00:08:55,990 --> 00:09:00,640
‫เราได้ค่าส่งคืนตรงนี้ และนั่นจะเป็นค่ามวล

105
00:09:00,640 --> 00:09:05,350
‫คุณสามารถดูว่าคุณวางเมาส์เหนือมันหรือไม่ มันบอกว่าส่งคืนมวลของส่วนประกอบนี้เป็นกิโลกรัม

106
00:09:05,350 --> 00:09:08,470
‫และอีกอย่าง ค่าที่ส่งกลับหมายถึงข้อมูลที่ส่งออกเท่านั้น

107
00:09:08,530 --> 00:09:14,590
‫จากนั้นเราสามารถลากโหนดนั้นไปยังสตริงของเราสำหรับสตริงการพิมพ์

108
00:09:14,590 --> 00:09:17,800
‫และคุณเห็นว่ามันสร้างโหนดการแปลงเล็กน้อยซึ่งไม่เป็นไร

109
00:09:17,800 --> 00:09:22,900
‫มันแปลงจากค่านี้เป็นสิ่งที่สตริงการพิมพ์จะยอมรับ

110
00:09:22,900 --> 00:09:30,970
‫เราสามารถไปข้างหน้าและกดเล่น และคุณเห็นว่าเราได้รับมูลค่า 1,000 ซึ่งเรารู้ว่าเป็นมวลที่เรากำหนดค่าหรืออะไรก็ตามที่คุณกำหนดค่าจริงๆ

111
00:09:30,970 --> 00:09:34,810
‫คุณสามารถเปลี่ยนสิ่งนั้นและเห็นว่าค่านี้จะเปลี่ยนไปเช่นกัน

112
00:09:34,810 --> 00:09:36,220
‫สำหรับการบรรยายครั้งนี้

113
00:09:36,220 --> 00:09:43,090
‫เราได้เรียนรู้เกี่ยวกับอ็อบเจ็กต์และข้อมูลอ้างอิง และวิธีใช้โหนดฟังก์ชันในพิมพ์เขียว

