﻿1
00:00:04,400 --> 00:00:05,210
‫Xin chào và chào mừng.

2
00:00:05,210 --> 00:00:10,100
‫Trong bài giảng này, chúng ta sẽ xem xét một hàm đặc biệt được gọi là hàm tạo cho phép chúng ta

3
00:00:10,100 --> 00:00:13,790
‫cung cấp các giá trị mặc định cho các thuộc tính trong lớp của chúng ta.

4
00:00:13,790 --> 00:00:16,820
‫Và chúng ta sẽ xem khi nào nó được gọi trong trình chỉnh sửa.

5
00:00:16,820 --> 00:00:18,890
‫Hãy đi sâu vào và tìm hiểu.

6
00:00:19,430 --> 00:00:25,430
‫Bây giờ, với thành phần kích hoạt này, tôi muốn thêm một chức năng thành phần đánh dấu vào đây

7
00:00:25,430 --> 00:00:32,450
‫để chúng ta có thể kiểm tra thành phần nào, các tác nhân nào khác hiện đang chồng chéo thành phần kích hoạt này

8
00:00:32,450 --> 00:00:37,010
‫và chúng tôi có thể kích hoạt nếu nó là loại tác nhân phù hợp.

9
00:00:37,550 --> 00:00:39,890
‫Vấn đề là, chúng ta sẽ xem vấn đề là gì.

10
00:00:39,890 --> 00:00:41,870
‫Hãy thử và thực hiện một chức năng đánh dấu.

11
00:00:41,870 --> 00:00:48,110
‫Nếu chúng ta xem qua phần grab H để xem phần khai báo của một hàm thành phần đánh dấu sẽ trông như thế nào,

12
00:00:48,110 --> 00:00:50,690
‫thì nó cần phải nằm trong phần công khai.

13
00:00:50,690 --> 00:00:53,450
‫Đó là một khoảng trống ảo, thành phần đánh dấu, thời gian delta.

14
00:00:53,450 --> 00:00:56,000
‫Có rất nhiều tham số, vì vậy chúng ta hãy sao chép nó.

15
00:00:56,030 --> 00:01:04,430
‫Đi tới tiêu đề thành phần đánh dấu, thêm nó vào bên dưới phần bắt đầu chơi của chúng tôi và sau đó chúng tôi sẽ sao chép

16
00:01:04,430 --> 00:01:08,570
‫định nghĩa đó, đưa nó vào thành phần kích hoạt của chúng tôi.

17
00:01:08,570 --> 00:01:13,280
‫CP Và một điều mà chúng ta sẽ nhận thấy là có một vài từ khóa ở đây mà chúng ta có thể loại bỏ.

18
00:01:13,280 --> 00:01:15,140
‫Chúng tôi có thể xóa từ khóa ảo.

19
00:01:15,140 --> 00:01:17,030
‫Đó thường là một quy tắc mà chúng ta có thể tuân theo.

20
00:01:17,030 --> 00:01:19,430
‫Chúng tôi cũng có thể xóa từ khóa ghi đè.

21
00:01:19,430 --> 00:01:22,040
‫Đây là những thứ không cần phải có trong tệp C ++.

22
00:01:22,190 --> 00:01:24,770
‫Chúng ta cần thêm tên lớp.

23
00:01:24,770 --> 00:01:26,330
‫Vì vậy, bạn kích hoạt dấu hai chấm thành phần.

24
00:01:26,330 --> 00:01:27,380
‫Đại tràng.

25
00:01:27,830 --> 00:01:35,870
‫Sau đó, chúng ta thay thế dấu chấm phẩy của chúng ta bằng một số dấu ngoặc nhọn và chúng ta cần thực hiện lệnh gọi thành phần super tick.

26
00:01:35,870 --> 00:01:43,460
‫Vì đó là một cuộc gọi khá dài, tôi sẽ sao chép nó từ lấy CP của chúng tôi và dán vào cuộc gọi này.

27
00:01:43,460 --> 00:01:49,040
‫Bây giờ điều này đang làm về cơ bản là nó gọi hàm thành phần đánh dấu của cha mẹ.

28
00:01:49,040 --> 00:01:52,880
‫Vì vậy, cha mẹ trong trường hợp này là thành phần hộp của chúng tôi.

29
00:01:52,880 --> 00:02:00,050
‫Vì vậy, điều quan trọng là phải gọi nó trong trường hợp có bất kỳ chức năng nào ở đó cần được sử dụng và kích hoạt để

30
00:02:00,050 --> 00:02:01,580
‫thành phần này hoạt động.

31
00:02:01,580 --> 00:02:06,890
‫Nếu chúng tôi không làm điều đó, về cơ bản chúng tôi đang bỏ qua bất kỳ chức năng nào và mọi thứ có thể bị hỏng.

32
00:02:06,890 --> 00:02:12,980
‫Vì vậy, điều rất quan trọng là phải luôn nhớ gọi tới super khi chúng ta đang thực hiện thành phần bắt đầu, chơi

33
00:02:12,980 --> 00:02:13,820
‫và đánh dấu.

34
00:02:13,820 --> 00:02:17,750
‫Bây giờ chúng ta hãy sao chép thông điệp nhật ký của chúng tôi từ Begin Play và đặt nó vào thành phần đánh dấu.

35
00:02:17,750 --> 00:02:25,040
‫Và thay vì nói đánh dấu thành phần ghi nhật ký và nói thành phần Tick đang đánh dấu ở đây và chúng ta sẽ tiếp tục biên dịch

36
00:02:25,100 --> 00:02:30,740
‫và xem liệu đánh dấu đó có thực sự hoạt động sau khi trình biên dịch hoàn tất hay không, hãy tiếp

37
00:02:30,740 --> 00:02:34,160
‫tục và nhấn play, mở đầu ra của chúng ta nhật ký và.

38
00:02:34,190 --> 00:02:37,400
‫Hmm, tốt, dường như không có gì đang xảy ra bây giờ.

39
00:02:37,400 --> 00:02:43,910
‫Lý do cho điều này là tối ưu hóa khôn ngoan, chúng tự động và không thực hầu hết các thành

40
00:02:43,910 --> 00:02:45,530
‫phần bị tắt đánh dấu.

41
00:02:45,530 --> 00:02:49,880
‫Vì vậy, các tác nhân thường bật nó theo mặc định, nhưng các thành phần thường tắt nó đi.

42
00:02:49,880 --> 00:02:54,890
‫Vì vậy, trên thực tế, nếu chúng ta xem xét một số thành phần khác mà chúng ta có, chẳng hạn như động thái của chúng ta mà chúng

43
00:02:54,890 --> 00:02:58,610
‫ta biết việc đánh dấu hoạt động hiệu quả, bạn có thể thấy rằng ở đầu tệp có điều này.

44
00:02:58,610 --> 00:03:06,950
‫Bạn di chuyển một hàm và nó có thành phần chính này đánh dấu chấm B có thể đánh dấu bằng true nếu bạn

45
00:03:06,950 --> 00:03:09,740
‫không đặt thuộc tính này trên lớp.

46
00:03:09,740 --> 00:03:15,320
‫Vì vậy, đây là một thuộc tính của lớp như một thuộc tính của thành phần chính cổ điển đánh dấu và nó

47
00:03:15,320 --> 00:03:19,340
‫là một cấu trúc có một thuộc tính B có thể đánh dấu bên trong nó.

48
00:03:19,490 --> 00:03:28,490
‫Vì vậy, những gì chúng tôi đang làm ở đây là chúng tôi đang đặt giá trị mặc định này trên lớp mover khi chúng tôi xây dựng nó.

49
00:03:28,490 --> 00:03:29,660
‫Đó là những gì chức năng này là.

50
00:03:29,660 --> 00:03:37,100
‫Nó được gọi là một hàm tạo và nó là một hàm được gọi bất cứ khi nào chúng ta tạo một thành phần mover mới để tự động đặt các

51
00:03:37,100 --> 00:03:42,950
‫giá trị mặc định, chúng ta có thể đặt một số giá trị mặc định trong tệp tiêu đề giống như chúng ta đã

52
00:03:42,950 --> 00:03:44,750
‫làm với nên di chuyển thời gian.

53
00:03:44,750 --> 00:03:50,360
‫Nhưng thay thế cho việc thực hiện lại trong tệp tiêu đề là chúng ta thực sự có thể đặt các thuộc

54
00:03:50,360 --> 00:03:51,800
‫tính này trong hàm tạo.

55
00:03:51,800 --> 00:03:57,350
‫Bây giờ tôi muốn bạn lưu ý đến cú pháp ở đây chúng ta sẽ chuyển sang phần di chuyển tệp tiêu đề.

56
00:03:57,350 --> 00:04:03,320
‫Bạn có thể thấy rằng một hàm tạo được đặt tên giống hệt như lớp.

57
00:04:03,320 --> 00:04:11,720
‫Vì vậy, you mover là tên lớp cho thành phần mover của chúng tôi và hàm tạo của nó cũng được gọi là bạn mover thông

58
00:04:11,750 --> 00:04:12,350
‫báo.

59
00:04:12,350 --> 00:04:14,630
‫Nó cũng không có kiểu trả lại.

60
00:04:14,630 --> 00:04:19,490
‫Không có ý nghĩa gì khi trả về bất cứ thứ gì bởi vì chúng ta đang xây dựng một đối tượng mới.

61
00:04:19,490 --> 00:04:22,820
‫Chúng tôi chỉ đang làm cho lớp học này diễn ra.

62
00:04:22,820 --> 00:04:30,560
‫Vì vậy, tất cả những gì chúng ta cần là truy cập vào các thuộc tính của lớp này và cũng lưu ý rằng nó được đặt thành công khai.

63
00:04:30,560 --> 00:04:35,180
‫Vì vậy, nó nằm trong phần công khai của định nghĩa lớp của chúng ta.

64
00:04:35,180 --> 00:04:39,470
‫Vì vậy, tôi muốn thách thức bạn bật tính năng đánh dấu cho chính mình.

65
00:04:39,470 --> 00:04:44,720
‫Vì vậy, bạn sẽ tạo một phương thức khởi tạo trong tiêu đề và hãy ghi nhớ rằng cú pháp mà chúng

66
00:04:44,720 --> 00:04:52,130
‫ta đã thấy trong cả động tác H và lấy rất nhiều H, bạn sẽ kích hoạt tính năng đánh dấu như chúng ta đã thấy một lần nữa trong

67
00:04:52,130 --> 00:04:54,620
‫các thành phần khác trong tệp CP của chúng.

68
00:04:54,620 --> 00:04:57,140
‫Vì vậy, chỉ cần bạn có thể sao chép cách nó đang được thực hiện.

69
00:04:57,290 --> 00:05:02,450
‫Bạn cũng có thể đăng nhập từ hàm tạo để thử và xem khi nào nó được gọi?

70
00:05:02,450 --> 00:05:03,610
‫Nó giống như bắt đầu chơi?

71
00:05:03,780 --> 00:05:07,290
‫Hay nó có được gọi trước khi bắt đầu chơi hay không?

72
00:05:07,320 --> 00:05:09,840
‫Đi và tạm dừng video và tiếp tục.

73
00:05:12,920 --> 00:05:13,310
‫Kay.

74
00:05:13,310 --> 00:05:14,100
‫Chào mừng trở lại.

75
00:05:14,120 --> 00:05:21,320
‫Vì vậy, chúng ta sẽ đi vào các thành phần trig của chúng ta, chúng sẽ tạo một phần công khai mới ở đây.

76
00:05:22,070 --> 00:05:26,630
‫Chúng ta đang nhớ dấu hai chấm ở cuối và sau đó chúng ta cần gọi nó giống hệt như lớp.

77
00:05:26,630 --> 00:05:28,040
‫Vì vậy, đó không phải là thành phần kích hoạt.

78
00:05:28,040 --> 00:05:33,320
‫Nó không phải là bạn kích hoạt mà là bạn kích hoạt thành phần đầy đủ.

79
00:05:33,320 --> 00:05:39,770
‫Và sau đó chúng tôi không có bất kỳ đối số nào cho hàm tạo này, vì vậy chúng tôi chỉ đặt các dấu ngoặc đơn trống và sau

80
00:05:39,770 --> 00:05:41,600
‫đó là dấu chấm phẩy ở cuối dòng.

81
00:05:41,600 --> 00:05:46,880
‫Bây giờ chúng ta có thể xem qua tệp CPP và chúng ta có thể thực hiện ở đây.

82
00:05:46,880 --> 00:05:48,290
‫Một lần nữa, chúng ta không cần kiểu trả về.

83
00:05:48,290 --> 00:05:57,560
‫Vì vậy, nó chỉ là bạn kích hoạt thành phần dấu hai chấm, dấu hai chấm, bạn kích hoạt thành phần hơi lặp đi lặp lại, nhưng đó là cách

84
00:05:57,560 --> 00:05:58,550
‫nó hoạt động.

85
00:05:58,550 --> 00:06:05,420
‫Sau đó, chúng tôi đặt một số dấu ngoặc nhọn và tại đây chúng tôi có thể thực hiện bất kỳ mã thiết lập nào của chúng tôi để cung cấp các

86
00:06:05,420 --> 00:06:07,280
‫giá trị mặc định cho cá thể lớp.

87
00:06:07,280 --> 00:06:12,530
‫Vì vậy, nếu chúng ta xem qua việc lấy CPP và xem nó đang làm gì, bạn có thể thấy nó có

88
00:06:12,530 --> 00:06:16,670
‫thành phần chính của nó là dấu chấm B có thể bao giờ đánh dấu bằng true.

89
00:06:16,670 --> 00:06:17,840
‫Vì vậy, chúng ta hãy gõ nó ra.

90
00:06:17,840 --> 00:06:23,540
‫Thành phần chính đánh dấu chấm B bao giờ có thể đánh dấu.

91
00:06:23,540 --> 00:06:31,520
‫B chỉ là một tiền tố mà chúng ta thường sử dụng khi những thứ có kiểu boolean được đặt bằng true với chữ t viết thường.

92
00:06:31,670 --> 00:06:38,720
‫Vì vậy, bởi vì các thay đổi đối với một hàm tạo không phải lúc nào cũng được truyền đúng cách trong quá trình mã hóa trực tiếp, tôi

93
00:06:38,720 --> 00:06:39,980
‫sẽ đóng trình chỉnh sửa.

94
00:06:40,100 --> 00:06:46,400
‫Tôi sẽ xây dựng lại từ bên trong mã Visual Studio, sau đó tôi sẽ khởi chạy lại từ tệp dự

95
00:06:46,400 --> 00:06:47,000
‫án EU.

96
00:06:47,000 --> 00:06:52,160
‫Khi điều đó xong, tôi sẽ tiếp tục và chơi, hãy xem nhật ký đầu ra của chúng tôi và chắc chắn, chúng

97
00:06:52,160 --> 00:06:54,890
‫ta có thể thấy rằng thành phần kích hoạt đang hoạt động.

98
00:06:55,130 --> 00:07:00,230
‫Vì vậy, tôi sẽ loại bỏ thông báo nhật ký đó vì nó gây phiền nhiễu và đóng nhật ký đầu

99
00:07:00,230 --> 00:07:04,460
‫ra trong mã Visual Studio, loại bỏ thông báo nhật ký này trong thành phần đánh dấu.

100
00:07:04,460 --> 00:07:06,020
‫Chúng ta có thể thấy rằng nó đang hoạt động.

101
00:07:06,410 --> 00:07:10,910
‫Và những gì chúng tôi muốn làm là ghi nhật ký vào phương thức khởi tạo của chúng tôi.

102
00:07:11,720 --> 00:07:17,990
‫Vì vậy, hãy làm một nhật ký mới nói rằng xây dựng, xem liệu mã hóa trực tiếp có thể lấy nó lần này hay không và sau đó

103
00:07:17,990 --> 00:07:21,680
‫chúng ta sẽ đi đến nhật ký đầu ra của mình và xem xét ngay lập tức.

104
00:07:21,680 --> 00:07:23,750
‫Không có gì hiển thị ở đây.

105
00:07:24,170 --> 00:07:28,370
‫Chà, nếu tôi tiếp tục và chơi, tôi sẽ xem nhật ký đầu ra của mình.

106
00:07:28,370 --> 00:07:33,980
‫Tôi có thể thấy thông báo nhật ký rằng thành phần kích hoạt còn tồn tại và lâu dài trước điều này.

107
00:07:33,980 --> 00:07:39,020
‫Trên thực tế, bạn có thể thấy rằng nó đang xây dựng phía trước khi nó chỉ tạo ra thế giới.

108
00:07:39,020 --> 00:07:44,630
‫Nó bắt đầu xây dựng từ rất sớm trước khi bắt đầu chơi bởi vì chúng tôi cần chuẩn bị cả thế giới

109
00:07:44,630 --> 00:07:46,400
‫sẵn sàng trước khi bắt đầu chơi.

110
00:07:46,400 --> 00:07:51,440
‫Vì vậy, nó xảy ra khi chúng ta nhấn play, nhưng trên thực tế, nó cũng xảy ra trong trình chỉnh sửa.

111
00:07:51,440 --> 00:07:58,130
‫Vì vậy, nếu tôi chọn một số tác nhân ở đây và sau đó thêm một thành phần vào nó và thêm trình kích hoạt của chúng tôi, thì hãy xem nhật

112
00:07:58,130 --> 00:07:59,300
‫ký đầu ra của tôi.

113
00:07:59,300 --> 00:08:03,050
‫Sau đó, bạn có thể thấy thông báo xây dựng đã thực sự được in.

114
00:08:03,050 --> 00:08:10,490
‫Vì vậy, chúng ta cần phải cẩn thận những gì chúng ta làm trong các hàm tạo của mình vì chúng thực sự được gọi là mã C ++ được gọi

115
00:08:10,490 --> 00:08:14,540
‫ngay khi chúng ta đang chỉnh sửa, thậm chí không chơi trò chơi của chúng ta.

116
00:08:14,540 --> 00:08:20,000
‫Các đối tượng này đang được tạo và do đó được thiết lập và do đó cần gọi hàm tạo của chúng.

117
00:08:20,090 --> 00:08:25,880
‫Tôi sẽ tiếp tục và xóa trình kích hoạt một lần nữa và làm rõ một chút bằng cách xóa thông báo

118
00:08:25,880 --> 00:08:30,170
‫nhật ký xây dựng và thông báo nhật ký bắt đầu chơi của chúng tôi.

119
00:08:30,170 --> 00:08:30,800
‫Công cụ tuyệt vời.

120
00:08:30,800 --> 00:08:37,430
‫Vì vậy, trong bài giảng này, chúng ta đã thấy cách chúng ta có thể thiết lập các thành phần của riêng mình sao cho chúng gần giống với

121
00:08:37,430 --> 00:08:42,320
‫các thành phần được tạo trong các mẫu cho các thành phần cảnh và thành phần ACT, chúng ta đã

122
00:08:42,320 --> 00:08:47,720
‫thấy cách sử dụng một hàm tạo để cung cấp các giá trị mặc định cho thuộc tính trong lớp của chúng ta.

123
00:08:47,720 --> 00:08:49,610
‫Hẹn gặp lại các bạn trong bài giảng tiếp theo.

