﻿1
00:00:03,980 --> 00:00:05,210
‫Xin chào và chào mừng.

2
00:00:05,210 --> 00:00:11,840
‫Trong bài giảng này, chúng ta sẽ lấy mớ bản thiết kế của mình và sắp xếp nó gọn gàng thành các hàm để chúng ta

3
00:00:11,840 --> 00:00:17,870
‫có thể dễ dàng đọc và hiểu những gì đang diễn ra trong đồ thị Sự kiện Bản thiết kế của chúng ta.

4
00:00:17,870 --> 00:00:19,850
‫Hãy đi sâu vào và xem làm thế nào để làm điều này.

5
00:00:20,600 --> 00:00:26,030
‫Bây giờ, nếu chúng ta thu nhỏ biểu đồ sự kiện của mình, chúng ta có thể thấy rằng nó bắt đầu rất ồn ào.

6
00:00:26,030 --> 00:00:28,610
‫Tôi cũng có thể thấy một vài nút không được kết nối với bất kỳ thứ gì.

7
00:00:28,610 --> 00:00:33,920
‫Có một nút get mà tôi sẽ xóa, một tài sản, nút M0, nhưng bạn có thể thấy nó đang trở nên rất ồn

8
00:00:33,920 --> 00:00:34,340
‫ào.

9
00:00:34,340 --> 00:00:36,860
‫Thật khó hiểu chuyện gì đang xảy ra ở đây.

10
00:00:36,860 --> 00:00:45,380
‫Bây giờ, một giải pháp điển hình mà mọi người làm là nói, Chà, khối nút ở đây là để tạo ra đường

11
00:00:45,380 --> 00:00:46,010
‫đạn.

12
00:00:46,010 --> 00:00:47,300
‫Vì vậy, tôi có thể chọn những thứ này.

13
00:00:47,300 --> 00:00:54,080
‫Tôi có thể nhấn phím C và nó sẽ đặt một khối xung quanh khối này được gọi là khối nhận xét.

14
00:00:54,080 --> 00:01:02,360
‫Và sau đó tôi có thể nhập các đường đạn sinh ra và điều đó cho tôi biết khối mã đó đang làm gì.

15
00:01:02,360 --> 00:01:05,410
‫Đó chắc chắn là một cách để tổ chức mã của bạn.

16
00:01:05,420 --> 00:01:12,680
‫Tuy nhiên, theo ý kiến của tôi, đó không phải là cách tốt nhất và chúng tôi đã có những công cụ tốt hơn để thực hiện điều này được gọi là các hàm.

17
00:01:12,680 --> 00:01:14,420
‫Vậy chức năng là gì?

18
00:01:14,780 --> 00:01:20,510
‫Các hàm thực thi các khối của kế hoạch chi tiết và làm cho trò chơi của chúng tôi hoạt động.

19
00:01:20,510 --> 00:01:25,310
‫Nhiều nút được cung cấp bởi Unreal Real thực sự là các chức năng đã có.

20
00:01:25,310 --> 00:01:27,380
‫Vì vậy, chúng tôi đã gặp phải những điều này.

21
00:01:27,380 --> 00:01:33,170
‫Khi bạn đi và phóng to nói trên nút đạn tác nhân sinh sản của chúng tôi, đó là một chức năng.

22
00:01:33,170 --> 00:01:39,410
‫Khi chúng ta xem xét thêm xung, đó là một hàm trên thực tế là hầu hết mọi nút trong số này, ngay cả những thứ như vectơ

23
00:01:39,410 --> 00:01:44,090
‫hoạt động chuyển tiếp không có chân thực thi và không có màu xanh lam cũng là một hàm mà bạn

24
00:01:44,090 --> 00:01:50,300
‫có thể biết vì nó có một biểu tượng f nhỏ ở trên cùng bên trái đại diện cho chức năng, nhưng chúng tôi không bị hạn chế

25
00:01:50,300 --> 00:01:52,370
‫đối với các chức năng mà Unreal cung cấp.

26
00:01:52,370 --> 00:01:56,150
‫Chúng tôi cũng có thể tạo các chức năng của riêng mình và nó thực sự dễ dàng để thực hiện.

27
00:01:56,150 --> 00:01:57,050
‫Trong Kế hoạch chi tiết.

28
00:01:57,050 --> 00:02:02,630
‫Chúng cho phép chúng tôi luôn có tổ chức và chúng cho phép chúng tôi sử dụng lại các khối mã.

29
00:02:02,630 --> 00:02:06,500
‫Vì vậy, điều đó tốt hơn là một nhận xét vì một nhận xét bạn phải sao chép và dán.

30
00:02:06,500 --> 00:02:12,620
‫Trong khi một hàm cho phép chúng ta chia sẻ một khối mã giữa nhiều nơi sử dụng.

31
00:02:12,620 --> 00:02:19,280
‫Vì vậy, chúng ta hãy xem làm thế nào chúng ta có thể chuyển một cái gì đó như thế này thành một khối mã.

32
00:02:19,610 --> 00:02:24,620
‫Trước hết, chúng ta có thể xóa khối bình luận, vì tôi không nghĩ điều đó là cần thiết.

33
00:02:24,620 --> 00:02:31,340
‫Thay vào đó, tôi sẽ chọn tất cả các nút từ tải trình phát - tất cả các cách để thêm xung động,

34
00:02:31,340 --> 00:02:35,180
‫nhấp chuột phải vào chúng và chọn thu gọn để hoạt động.

35
00:02:35,360 --> 00:02:42,920
‫Và điều đó tạo ra một khối mới và thay thế tất cả các nút trước đó đã có trước đó.

36
00:02:42,920 --> 00:02:46,520
‫Bây giờ tôi sẽ đặt tên cho hàm này mà bạn có thể nhìn thấy trong ngăn bên trái.

37
00:02:46,520 --> 00:02:53,870
‫Nó được tạo một chức năng mới trong phần chức năng trong ngăn kế hoạch chi tiết của tôi và nó được chọn để

38
00:02:53,870 --> 00:02:59,480
‫tôi tự động đổi tên vì chúng ta chắc chắn nên đổi tên các chức năng này và

39
00:02:59,480 --> 00:03:02,120
‫tôi sẽ gọi nó là đạn xuất hiện.

40
00:03:02,120 --> 00:03:09,530
‫Và việc đặt tên tốt là hoàn toàn quan trọng trong chương trình bởi vì mã về cơ bản là tất cả về giao tiếp.

41
00:03:09,530 --> 00:03:14,750
‫Chúng tôi đang cố gắng giao tiếp với chính mình để chúng tôi có thể hiểu những gì chúng tôi đã viết.

42
00:03:14,750 --> 00:03:17,210
‫Chúng tôi đang cố gắng giao tiếp với chính mình trong tương lai.

43
00:03:17,210 --> 00:03:21,050
‫Khi chúng tôi quay lại dự án này, chúng tôi đã quên mất lý do tại sao chúng tôi lại viết nó theo một cách nhất định.

44
00:03:21,050 --> 00:03:25,310
‫Và khi bạn làm việc theo nhóm, bạn cũng đang cố gắng giao tiếp với những người còn lại trong nhóm của mình.

45
00:03:25,340 --> 00:03:31,130
‫Một số người nói rằng một số liệu tốt cho chất lượng mã là giá trị của mỗi phút.

46
00:03:31,130 --> 00:03:36,500
‫Vì vậy, nếu bạn đang đọc một đoạn mã và bạn đang chạy, Cái quái gì, 50 lần một phút, đó là đoạn mã khá

47
00:03:36,500 --> 00:03:41,060
‫tệ nếu bạn đang đọc nó và chỉ tiếp tục, Cái quái gì vậy, một hoặc hai lần một phút, thì

48
00:03:41,060 --> 00:03:44,930
‫đó có lẽ là mã khá tốt và bạn sẽ luôn nhận được phần nào hex.

49
00:03:44,930 --> 00:03:49,220
‫Vì vậy, chúng tôi chỉ đang cố gắng giảm số lượng chức năng của chúng.

50
00:03:49,220 --> 00:03:51,650
‫Điều quan trọng, chúng ta có xu hướng đặt tên cho các chức năng là động từ.

51
00:03:51,650 --> 00:03:58,070
‫Có một số ngoại lệ đối với quy tắc này mà chúng ta sẽ đề cập ở phần sau, nhưng hầu hết các hàm là những thứ đang thực

52
00:03:58,070 --> 00:03:59,270
‫hiện một cái gì đó.

53
00:03:59,270 --> 00:04:06,230
‫Vì vậy, chúng tôi sử dụng các từ làm và nếu bạn không chắc chắn về cách đặt tên cho chức năng này, thì nếu bạn đang làm việc trong

54
00:04:06,230 --> 00:04:11,420
‫một nhóm, bạn có thể nói chuyện với người khác và hỏi họ xem bạn nên đặt tên cho nó như thế

55
00:04:11,420 --> 00:04:14,060
‫nào và những thứ gì có ý nghĩa đối với họ.

56
00:04:14,060 --> 00:04:19,760
‫Bạn thường thấy rằng mình đã quá lún sâu vào một vấn đề mà bạn không thể nghĩ ra cách nói về nó.

57
00:04:19,760 --> 00:04:26,450
‫Vì vậy, bạn có thể tự hỏi mình, Chà, tất cả mã của tôi đã đi đâu khi tôi tạo ra chức năng phóng đạn sinh

58
00:04:26,450 --> 00:04:27,170
‫sản này?

59
00:04:27,320 --> 00:04:34,610
‫Chà, bạn có thể quay lại chi tiết đó về cách chức năng này thực sự được triển khai bằng cách nhấp đúp vào nó trong biểu

60
00:04:34,610 --> 00:04:40,700
‫đồ sự kiện hoặc nhấp vào nó trong tab Bản thiết kế của tôi hoặc nhấp đúp vào nó trên tab Bản

61
00:04:40,700 --> 00:04:41,840
‫thiết kế của tôi.

62
00:04:41,840 --> 00:04:48,950
‫Và bạn có thể thấy rằng chúng tôi có tất cả các nút của chúng tôi vẫn còn ở đây bây giờ chúng nằm trong một

63
00:04:48,950 --> 00:04:56,240
‫tab riêng biệt, vì vậy bạn có thể quay lại tab biểu đồ sự kiện của mình hoặc bạn có thể đi sâu vào tab Đạn đẻ trứng

64
00:04:56,240 --> 00:04:57,980
‫chỉ hiển thị một hàm số.

65
00:04:58,610 --> 00:05:04,940
‫Và bạn có thể thấy có một nút mới ở đây, nút nhỏ màu tím này, là điểm vào hàm của chúng

66
00:05:04,940 --> 00:05:05,480
‫ta.

67
00:05:05,480 --> 00:05:09,800
‫Điều này nói rằng đây là những gì chúng ta nên làm khi hàm bắt đầu.

68
00:05:09,800 --> 00:05:11,180
‫Nó chỉ là một điểm vào.

69
00:05:11,180 --> 00:05:16,880
‫Và bất cứ khi nào nó được gọi, nút đó sẽ kích hoạt và kích hoạt tất cả các nút còn lại bên trong hàm

70
00:05:16,880 --> 00:05:17,690
‫của chúng ta.

71
00:05:17,690 --> 00:05:19,820
‫Vì vậy, quay trở lại đồ thị sự kiện và.

72
00:05:19,960 --> 00:05:23,190
‫Thu nhỏ, có thể đưa các nút của chúng ta lại gần nhau một chút.

73
00:05:23,200 --> 00:05:26,850
‫Bây giờ chúng tôi đã làm cho biểu đồ nút của mình nhỏ hơn và dễ đọc hơn rất nhiều.

74
00:05:26,860 --> 00:05:33,760
‫Tôi nghĩ rằng có một vài ứng cử viên nữa ở đây để chúng tôi loại bỏ các chức năng và thay thế mọi thứ.

75
00:05:33,940 --> 00:05:38,380
‫Một trong số chúng sẽ là nơi chúng tôi đang in đạn.

76
00:05:38,380 --> 00:05:43,780
‫Vì vậy, trong trường hợp này, việc in đạn là việc mà chúng tôi làm ở hai nơi.

77
00:05:43,780 --> 00:05:47,800
‫Chúng tôi làm điều đó khi bắt đầu chơi và chúng tôi thực hiện nó trong đường đạn sinh sản.

78
00:05:48,190 --> 00:05:54,190
‫Và sau đó là nơi khác, thứ khác, phần chức năng mà chúng ta có thể trích xuất

79
00:05:54,190 --> 00:06:01,200
‫vào một chức năng sẽ là nơi chúng ta giảm lượng đạn có thể được đưa vào một chức năng giảm đạn.

80
00:06:01,210 --> 00:06:09,640
‫Vì vậy, ngay trước khi tôi đặt cho bạn thử thách, tôi muốn xóa nút chuyển đổi và nút chuỗi in ở sau

81
00:06:09,640 --> 00:06:15,280
‫đường đạn sinh ra vì điều này sẽ làm phức tạp thêm vấn đề.

82
00:06:15,280 --> 00:06:21,370
‫Tôi muốn sao chép chức năng từ trên xuống để cả hai trông giống hệt nhau.

83
00:06:21,370 --> 00:06:29,200
‫Vì vậy, nếu chúng tôi sao chép ba nút từ Begin Play và dán chúng xuống bên dưới và kết nối các chân thực thi, thì bạn

84
00:06:29,200 --> 00:06:35,050
‫có thể thấy chúng tôi có cùng một bộ nút ở đây, chức năng giống nhau giữa hai nút và không

85
00:06:35,050 --> 00:06:39,970
‫có sự nhầm lẫn nào khi chúng tôi đến để giải nén nó thành một hàm.

86
00:06:39,970 --> 00:06:43,240
‫Vì vậy, tôi muốn thách thức bạn tạo thêm một số chức năng.

87
00:06:43,240 --> 00:06:47,140
‫Điều đầu tiên tôi muốn khuyên bạn nên làm là giảm đạn.

88
00:06:47,140 --> 00:06:51,850
‫Vì vậy, lấy ba nút liên quan đến việc giảm đạn, trích xuất chúng thành một hàm và đặt

89
00:06:51,850 --> 00:06:52,720
‫tên cho chúng.

90
00:06:52,960 --> 00:06:56,020
‫Và sau đó cái thứ hai là đạn in.

91
00:06:56,020 --> 00:07:03,310
‫Vì vậy, bạn sẽ trích xuất chức năng nhận, chuyển đổi và in đạn thành

92
00:07:03,310 --> 00:07:05,740
‫một chức năng duy nhất.

93
00:07:05,740 --> 00:07:11,500
‫Và bởi vì chúng tôi có hai trang web mà chúng tôi đang in đạn, bạn có thể muốn xóa một trong số chúng và

94
00:07:11,500 --> 00:07:17,020
‫thay vào đó mang lại chức năng, bạn có thể thực hiện bằng cách kéo từ ngăn kế hoạch chi tiết của tôi.

95
00:07:17,260 --> 00:07:22,750
‫Và cuối cùng chúng ta đã có một vài thông báo chào mừng, đầu ra của các nút thông báo chào mừng.

96
00:07:22,750 --> 00:07:24,820
‫Bạn có thể trích xuất chúng thành một bản in.

97
00:07:24,820 --> 00:07:27,070
‫Chức năng tin nhắn chào mừng là tốt.

98
00:07:27,100 --> 00:07:29,170
‫Tạm dừng video và tiếp tục.

99
00:07:32,230 --> 00:07:32,740
‫Được chứ.

100
00:07:32,740 --> 00:07:33,570
‫Chào mừng trở lại.

101
00:07:33,580 --> 00:07:37,450
‫Vì vậy, chúng tôi sẽ trích xuất số đạn giảm của chúng tôi trước.

102
00:07:37,450 --> 00:07:39,640
‫Vì vậy, có ba nút liên quan đến điều đó.

103
00:07:39,640 --> 00:07:47,260
‫Chúng tôi sẽ nhấp chuột phải để thu gọn chức năng, sau đó chúng tôi sẽ gọi nó là Giảm Đạn và điều đó khá đơn

104
00:07:47,260 --> 00:07:47,740
‫giản.

105
00:07:47,740 --> 00:07:51,940
‫Vì vậy, sinh ra đạn, giảm đạn và sau đó chúng tôi đang in đạn.

106
00:07:51,940 --> 00:07:58,210
‫Vì vậy, chúng ta hãy lấy ba nút, chuỗi nhận chuyển đổi và in và chúng ta sẽ nhấp chuột phải vào

107
00:07:58,210 --> 00:08:02,020
‫thu gọn để hoạt động và gọi đây là một đạn in.

108
00:08:02,470 --> 00:08:08,590
‫Bây giờ như tôi đã nói, chúng tôi đã lặp lại chức năng này ở hai nơi, vì vậy chúng tôi

109
00:08:08,590 --> 00:08:16,180
‫sẽ xóa nơi nó thực hiện điều này khi bắt đầu chơi và chỉ cần kéo đạn in từ danh sách chức năng của chúng tôi và

110
00:08:16,180 --> 00:08:19,840
‫kết nối các chốt thực thi để nó chạy sau chuỗi in.

111
00:08:20,200 --> 00:08:25,630
‫Điều này đưa tôi đến với chức năng cuối cùng mà tôi muốn tạo, mà chúng tôi đã nói rằng chúng tôi sẽ gọi là in tin nhắn chào mừng.

112
00:08:25,630 --> 00:08:32,050
‫Vì vậy, tôi sẽ chọn chuỗi để in sau khi đang chơi, thu gọn để hoạt động và gọi nó

113
00:08:32,050 --> 00:08:34,390
‫là in tin nhắn chào mừng.

114
00:08:34,390 --> 00:08:42,040
‫Và nút này, bây giờ chúng ta có thể sắp xếp lại tất cả các nút của mình để giúp việc đọc tất cả những thứ này ở chế độ toàn màn hình

115
00:08:42,040 --> 00:08:43,200
‫dễ dàng hơn nhiều.

116
00:08:43,210 --> 00:08:49,960
‫Bạn có thể thấy bây giờ dễ hiểu hơn về chức năng của trò chơi của chúng tôi vì tất cả đều

117
00:08:49,960 --> 00:08:56,380
‫phù hợp trên một màn hình và được đưa đến một mức độ trừu tượng và hiểu biết tương tự.

118
00:08:56,380 --> 00:09:02,830
‫Và đây là những gì chúng tôi gọi là mã tự lập tài liệu, bởi vì nó là mã không cần chú thích hoặc tài

119
00:09:02,830 --> 00:09:04,900
‫liệu để giải thích những gì nó làm.

120
00:09:04,900 --> 00:09:07,150
‫Nó chỉ đọc như tiếng Anh.

121
00:09:07,270 --> 00:09:08,110
‫Công cụ tuyệt vời.

122
00:09:08,110 --> 00:09:10,120
‫Hẹn gặp lại các bạn trong bài giảng tiếp theo.

