﻿1
00:00:04,350 --> 00:00:05,340
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,340 --> 00:00:12,540
‫ในการบรรยายนี้ เราจะเข้าถึงนักแสดงที่ทับซ้อนกันในสิ่งที่เรียกว่าอาร์เรย์

3
00:00:12,540 --> 00:00:19,860
‫เพื่อที่เราจะสามารถพิมพ์นักแสดงที่เราเห็นในเล่มนี้จาก C++ ได้ทั้งหมด

4
00:00:19,860 --> 00:00:21,510
‫มาดูวิธีทำกันเลยดีกว่า

5
00:00:22,420 --> 00:00:30,970
‫เช่นเดียวกับการเปรียบเทียบครั้งก่อน สมมติว่าชนิดหรือตัวแปรเป็นกล่องที่เราใส่ค่า

6
00:00:31,000 --> 00:00:35,290
‫ทีนี้ จะเกิดอะไรขึ้นถ้าเราไม่รู้ว่าต้องการจัดเก็บค่ากี่ค่า?

7
00:00:35,290 --> 00:00:36,670
‫เราอาจสร้างตัวแปรมากมาย

8
00:00:36,670 --> 00:00:39,610
‫หากเรารู้ว่าเราจะมีห้าตัว เราก็อาจสร้างตัวแปรห้าตัว

9
00:00:39,610 --> 00:00:45,910
‫แต่ถ้าเรามีบางอย่างที่คาดเดาไม่ได้ เช่น จำนวนนักแสดงที่เรามีในระดับของเรา

10
00:00:46,540 --> 00:00:51,220
‫หรือนักแสดงที่ซ้อนทับกับปริมาณทริกเกอร์โดยเฉพาะ

11
00:00:51,370 --> 00:01:00,220
‫ในกรณีนี้ เราจำเป็นต้องใช้ชนิดข้อมูลใหม่ที่เรียกว่า T array ใน Unreal และโดยพื้นฐานแล้วคือ T array

12
00:01:00,220 --> 00:01:01,270
‫บางประเภท

13
00:01:01,270 --> 00:01:08,860
‫อีกครั้งที่เราเห็นวงเล็บมุมเหล่านี้ซึ่งก่อนหน้านี้เรากล่าวไว้ว่าเป็นพารามิเตอร์เวลาคอมไพล์

14
00:01:08,860 --> 00:01:14,800
‫และคราวนี้เรากำลังพูดถึงประเภทที่บอกเราว่าประเภทใดที่เราสามารถเก็บไว้ในอาร์เรย์ของเราได้

15
00:01:14,800 --> 00:01:23,980
‫อาร์เรย์เป็นเหมือนตัวแปร ยกเว้นว่ามันมีหลายกล่อง และจำนวนกล่องที่เรามีอาจแตกต่างกันไปเมื่อเราเล่นเกมของเรา

16
00:01:23,980 --> 00:01:24,940
‫มันสามารถเปลี่ยนแปลงได้

17
00:01:24,940 --> 00:01:28,330
‫เราสามารถเพิ่มมากขึ้นหรือน้อยลงเมื่อเราผ่านเกม

18
00:01:28,330 --> 00:01:32,650
‫เมื่อสิ่งต่าง ๆ เริ่มซ้อนทับกัน เราจะเพิ่มกล่องเพิ่มเติมเมื่อสิ่งต่าง ๆ ออกจากโซนที่ทับซ้อนกัน

19
00:01:32,650 --> 00:01:33,850
‫เราจะพาพวกเขาไป

20
00:01:33,850 --> 00:01:37,510
‫และอย่างที่ฉันพูดไป นี่คือพารามิเตอร์ภายในพวกนี้

21
00:01:38,300 --> 00:01:39,560
‫วงเล็บมุม

22
00:01:39,560 --> 00:01:46,190
‫ดังนั้นเราจึงสามารถมีถาด int ได้ ตัวอย่างเช่น ซึ่งจะเก็บจำนวนเต็มต่างๆ ไว้ในกล่องเหล่านั้น

23
00:01:46,190 --> 00:01:52,940
‫เราอาจมีถาดพอยน์เตอร์ของนักแสดง และนี่จะเก็บพอยน์เตอร์ไว้ในกล่อง

24
00:01:52,940 --> 00:01:55,880
‫ซึ่งจะชี้ไปที่นักแสดงในโลก

25
00:01:55,880 --> 00:01:57,740
‫และอย่างที่คุณเห็น พวกมันสามารถทับซ้อนกันได้

26
00:01:57,740 --> 00:02:01,430
‫ดังนั้นบางตัวชี้เหล่านี้ชี้ไปที่นักแสดงคนเดียวกัน

27
00:02:01,460 --> 00:02:04,760
‫ในทางปฏิบัติ มันไม่มีประโยชน์มากนัก แต่ก็เป็นไปได้อย่างแน่นอน

28
00:02:04,760 --> 00:02:11,450
‫ดังนั้นฉันจึงต้องการทบทวนเอกสารประกอบขององค์ประกอบดั้งเดิม เพราะสิ่งที่ฉันกำลังมองหาที่นี่คือฟังก์ชันที่เรียกว่า

29
00:02:11,450 --> 00:02:16,490
‫รับนักแสดงที่ทับซ้อนกัน

30
00:02:16,490 --> 00:02:21,170
‫และถ้าคุณได้ดูฟังก์ชันนักแสดงที่ทับซ้อนกัน มีอยู่สองสามเวอร์ชัน

31
00:02:21,530 --> 00:02:26,810
‫แต่สิ่งที่น่าสนใจที่สุดสำหรับฉันคืออันที่สอง

32
00:02:27,170 --> 00:02:30,470
‫ไม่มีค่าส่งคืน เป็นค่าส่งคืนที่เป็นโมฆะ

33
00:02:30,470 --> 00:02:38,750
‫แต่คุณจะเห็นว่าพารามิเตอร์แรกในที่นี้คืออาร์เรย์ t ของตัวชี้ตัวแสดงที่มีเครื่องหมายและต่อท้าย

34
00:02:38,750 --> 00:02:43,700
‫หมายความว่าสิ่งทั้งหมดนี้อ้างอิงถึงอาร์เรย์ t

35
00:02:43,700 --> 00:02:51,950
‫สังเกตว่ามันไม่ใช่การอ้างอิงคงที่ ดังนั้นเราสามารถสรุปได้ว่าพารามิเตอร์นี้เป็นพารามิเตอร์เอาต์จริง ๆ

36
00:02:51,950 --> 00:03:02,450
‫มันให้ผลลัพธ์ของตัวแสดงที่คาบเกี่ยวกัน และมันบอกเราว่านักแสดงคนใดกำลังทับซ้อนกับองค์ประกอบดั้งเดิมของเรา

37
00:03:02,450 --> 00:03:06,740
‫ตอนนี้มันเกิดขึ้นที่องค์ประกอบกล่องของเราเป็นส่วนประกอบดั้งเดิม

38
00:03:06,740 --> 00:03:09,890
‫ดังนั้นองค์ประกอบทริกเกอร์ของเราจึงเป็นองค์ประกอบดั้งเดิมเช่นกัน

39
00:03:09,890 --> 00:03:12,680
‫และใครบ้างที่จะสามารถเข้าถึงฟังก์ชั่นนี้ได้?

40
00:03:13,460 --> 00:03:18,200
‫มีอาร์กิวเมนต์ที่สองอยู่ที่นี่ แต่เราไม่จำเป็นต้องกังวลเกี่ยวกับเรื่องนั้นเพราะมันมีค่าเริ่มต้นจริง

41
00:03:18,200 --> 00:03:19,670
‫ๆ หากเราใช้

42
00:03:19,670 --> 00:03:26,120
‫ไปข้างหน้าและลองจับและใส่ถาดพอยน์เตอร์ของนักแสดง

43
00:03:26,120 --> 00:03:27,710
‫เราจะไปที่องค์ประกอบทริกเกอร์

44
00:03:27,710 --> 00:03:31,610
‫CP เราจะลงไปที่องค์ประกอบติ๊ก

45
00:03:31,700 --> 00:03:38,270
‫และในที่นี้ เราจะสร้างอาร์เรย์ t ว่าง ที่เราเติมได้โดยใช้ฟังก์ชันนี้

46
00:03:38,270 --> 00:03:48,170
‫ไวยากรณ์คือ t อาร์เรย์ วงเล็บมุมเปิด ดารานักแสดง เพื่อบอกว่าเรามีตัวชี้นักแสดง t อาร์เรย์

47
00:03:48,170 --> 00:03:55,310
‫ปิดวงเล็บมุม จากนั้นเราสามารถตั้งชื่อตัวแปรนี้เป็นนักแสดงได้

48
00:03:55,310 --> 00:04:05,780
‫จากนั้นเราจะเรียกนักแสดงที่ทับซ้อนกันและเราจะผ่านอาร์เรย์นักแสดง

49
00:04:06,590 --> 00:04:06,950
‫ตอนนี้.

50
00:04:06,950 --> 00:04:11,900
‫ฉันไม่รู้ว่าทำไมพวกเขาไม่เพียงแค่ส่งสิ่งนี้ออกมาเป็นค่าตอบแทน แต่

51
00:04:12,840 --> 00:04:13,450
‫ไปเลย

52
00:04:13,470 --> 00:04:18,340
‫มันทำให้เรามีโอกาสใช้พารามิเตอร์เหล่านั้นเพิ่มขึ้นอีกเล็กน้อย

53
00:04:18,360 --> 00:04:19,530
‫ตอนนี้ทุกอย่างดีและดี

54
00:04:19,530 --> 00:04:22,350
‫เรามีนักแสดงอยู่ในแถว

55
00:04:22,710 --> 00:04:24,120
‫มีความยาวผันแปรของมัน

56
00:04:24,120 --> 00:04:25,140
‫อาจจะมีไม่มาก

57
00:04:25,140 --> 00:04:26,520
‫อาจจะมีศูนย์

58
00:04:26,730 --> 00:04:29,670
‫เราจะทำอย่างไรกับอาร์เรย์เช่นนี้?

59
00:04:29,670 --> 00:04:34,020
‫เราสามารถสอบถามว่ามีกี่รายการในอาร์เรย์

60
00:04:34,020 --> 00:04:41,610
‫คุณสามารถใช้อาร์เรย์ วงเล็บ dot num และสามารถคืนค่าจำนวนเต็มเพื่อบอกคุณว่ามีกี่รายการในอาร์เรย์

61
00:04:41,610 --> 00:04:52,020
‫ดังนั้นในอาร์เรย์เฉพาะนี้ เราสามารถพูดได้ว่ามีห้ารายการ จากนั้นเราสามารถเข้าถึงรายการภายในอาร์เรย์นั้นได้โดยใช้วงเล็บเหลี่ยมเหล่านี้

62
00:04:52,410 --> 00:04:56,100
‫จากนั้นหมายเลขที่คุณส่งเข้าไปในวงเล็บเหลี่ยมจะบอกคุณว่าต้องรับรายการใด

63
00:04:56,100 --> 00:05:02,820
‫และเป็นเรื่องปกติในภาษาการเขียนโปรแกรมจำนวนมากที่เราเริ่มนับจากศูนย์ในอาร์เรย์

64
00:05:02,820 --> 00:05:09,630
‫ดังนั้นองค์ประกอบที่ศูนย์ของอาร์เรย์จึงเป็นองค์ประกอบแรก องค์ประกอบหนึ่งของอาร์เรย์คือองค์ประกอบที่สอง เป็นต้น

65
00:05:09,630 --> 00:05:15,180
‫ดังนั้นคุณจึงลงเอยด้วยองค์ประกอบสุดท้ายที่น้อยกว่าจำนวนองค์ประกอบในอาร์เรย์เสมอ

66
00:05:15,660 --> 00:05:17,640
‫แล้วเราจะใช้ความรู้นี้ได้อย่างไร?

67
00:05:17,640 --> 00:05:24,540
‫ตัวอย่างเช่น เราสามารถพิมพ์ตัวแสดงที่ทับซ้อนกันได้ก็ต่อเมื่อมีมากกว่าหนึ่งตัว

68
00:05:24,540 --> 00:05:26,070
‫แล้วเราจะทำสิ่งนี้ได้อย่างไร?

69
00:05:26,070 --> 00:05:38,130
‫เราจะใส่คำสั่ง if โดยบอกว่าถ้าวงเล็บ dot num ของนักแสดงมากกว่าศูนย์ เราก็สามารถทำบางสิ่งในนี้ เช่น เข้าถึงองค์ประกอบ

70
00:05:38,130 --> 00:05:50,130
‫zero ของนักแสดงได้ เพราะเรารู้ว่าถ้ามากกว่า 0 จะต้องอยู่ที่ อย่างน้อยหนึ่งองค์ประกอบในนั้น

71
00:05:50,130 --> 00:05:54,690
‫ดังนั้นองค์ประกอบที่ศูนย์ของอาร์เรย์นี้ต้องมีบางอย่างอยู่

72
00:05:54,690 --> 00:06:01,620
‫เราไม่สามารถรับประกันได้ว่าอิลิเมนต์แรก อิลิเมนต์หนึ่งของอาร์เรย์มีข้อมูลอะไร หรือสองอิลิเมนต์มีอะไรอยู่

73
00:06:01,620 --> 00:06:08,700
‫เราจะต้องตรวจสอบว่าเรามีรายการเพียงพอในอาร์เรย์หรือไม่เพื่อที่จะทำอย่างนั้น แต่เรารู้แน่นอนว่ามีรายการแรกอยู่ที่นี่

74
00:06:08,700 --> 00:06:12,690
‫เรามาท้าให้คุณพิมพ์นักแสดงที่ทับซ้อนกันตัวแรกจากอาร์เรย์นั้น

75
00:06:12,720 --> 00:06:16,680
‫ใช้อาร์เรย์เพื่อรับตัวชี้โดยใช้วงเล็บเหลี่ยมเหล่านั้น

76
00:06:16,680 --> 00:06:22,290
‫จากนั้นคุณจะใช้ตัวชี้นั้นเพื่อโทร หานักแสดง ชื่อหรือป้ายกำกับ จากนั้นคุณจะพิมพ์ออกมา

77
00:06:22,290 --> 00:06:25,140
‫หยุดวิดีโอชั่วคราวแล้วเริ่มกันเลย

78
00:06:28,340 --> 00:06:29,650
‫เฮ้ ยินดีต้อนรับกลับมา

79
00:06:29,660 --> 00:06:34,730
‫เราจะได้จับตัวชี้ไว้ตรงนี้ โดยใช้วงเล็บเหลี่ยมนี้

80
00:06:34,730 --> 00:06:41,300
‫จากนั้นฉันจะเรียกชื่อตรงๆ โดยใช้ตัวดำเนินการลูกศร และเรียกชื่อนักแสดง

81
00:06:41,300 --> 00:06:43,610
‫ชื่อหรือป้ายกำกับ

82
00:06:44,090 --> 00:06:50,210
‫และฉันจะใส่มันลงในตัวแปรสตริง F ที่เรียกว่าชื่อนักแสดง

83
00:06:50,210 --> 00:06:56,510
‫จากนั้นเราจะทำบันทึก U ซึ่งเราจะเรียกเครื่องหมายทวิภาคที่ทับซ้อนกัน

84
00:06:56,510 --> 00:06:58,390
‫แล้วเปอร์เซ็นต์ s

85
00:06:58,400 --> 00:07:03,740
‫แล้วอาร์กิวเมนต์ที่สองที่นี่ควรเป็นดอกจัน ชื่อนักแสดง

86
00:07:03,740 --> 00:07:09,650
‫จากนั้นเราก็สามารถคอมไพล์ใหม่ กระโดดเข้าสู่ไฟล์บันทึกเอาต์พุตของเราในเลย์เอาต์

87
00:07:09,650 --> 00:07:17,270
‫จากนั้นเราจะเปิดกำแพงลับของ BPP เพราะฉันไม่ต้องการพิมพ์สตริงนี้ที่สร้างความสับสน

88
00:07:17,270 --> 00:07:24,230
‫ใน Blueprint เรากำลังดำเนินการนี้จาก C++ ดังนั้นเรามาดูเกมตีดันเจี้ยนระดับดันเจี้ยนกัน

89
00:07:25,160 --> 00:07:28,700
‫และเห็นได้ชัดว่าไม่มีอะไรทับซ้อนกันของนักแสดงคนนั้นในตอนนี้

90
00:07:28,700 --> 00:07:31,850
‫จะเกิดอะไรขึ้นถ้าเราเข้าไปข้างใน?

91
00:07:31,940 --> 00:07:36,320
‫คุณจะเห็นว่าเครื่องเริ่มพิมพ์ทันที เรากำลังส่งเสียงบี๊บทับกัน

92
00:07:36,560 --> 00:07:37,760
‫สิ่งที่ยอดเยี่ยม

93
00:07:37,760 --> 00:07:40,370
‫ถ้าเราต้องไปเอาการ์กอยล์มาแทนล่ะ?

94
00:07:40,370 --> 00:07:43,820
‫เอาไปไว้ที่ซุ้ม ติดมัน และไปที่นั่น

95
00:07:43,820 --> 00:07:46,400
‫มันบอกว่าทับรูปปั้นกอบลิน

96
00:07:46,670 --> 00:07:47,270
‫สิ่งที่ดี

97
00:07:47,270 --> 00:07:55,340
‫ดังนั้นเราจึงได้เรียนรู้วิธีใช้อาร์เรย์ t เพื่อรับรายชื่อนักแสดง และค้นหาว่ามีกี่สิ่งในรายการนั้น

98
00:07:55,340 --> 00:08:00,980
‫และวิธีรับรายการเฉพาะจากรายการนั้น

99
00:08:00,980 --> 00:08:05,750
‫ในการบรรยายครั้งต่อไป เราจะดูโครงสร้างการเขียนโปรแกรมที่ช่วยให้เราสามารถจัดการกับจำนวนตัวแปรของสิ่งต่าง

100
00:08:05,750 --> 00:08:10,790
‫ๆ เพื่อทำงานจำนวนตัวแปรได้

101
00:08:10,790 --> 00:08:11,870
‫ฉันจะไปพบคุณที่นั่น.

