﻿1
00:00:04,320 --> 00:00:05,040
‫Xin chào và chào mừng.

2
00:00:05,040 --> 00:00:11,940
‫Chủ đề của bài giảng này sẽ là hàm chịu thiệt hại của tác nhân và cách chúng ta gọi nó.

3
00:00:11,940 --> 00:00:14,700
‫Hãy đi sâu vào và tìm hiểu tất cả về nó.

4
00:00:15,770 --> 00:00:21,110
‫Vì vậy, để chúng ta có thể gây sát thương cho một thứ gì đó, chúng ta cần thực sự có một thứ mà chúng

5
00:00:21,110 --> 00:00:22,250
‫ta có thể đánh trúng.

6
00:00:22,370 --> 00:00:29,480
‫Vì vậy, chúng ta hãy đi đến lộ trình trình duyệt nội dung của chúng tôi và đưa vào một trong những nhân vật bắn súng BP.

7
00:00:29,810 --> 00:00:36,170
‫Bởi vì thực tế những gì sẽ xảy ra là nếu bạn đưa một nhân vật vào cảnh, thì Unreal sẽ

8
00:00:36,170 --> 00:00:42,530
‫tự động điều khiển nhân vật này AI và AI xuất hiện khi người chơi bắt đầu sẽ do người chơi

9
00:00:42,530 --> 00:00:43,190
‫điều khiển.

10
00:00:43,190 --> 00:00:44,660
‫Vì vậy, điều đó thật tuyệt.

11
00:00:44,660 --> 00:00:45,890
‫Đó chính xác là hành vi mà chúng tôi muốn.

12
00:00:45,890 --> 00:00:51,200
‫Nếu tôi tiếp tục và nhấn alt p, bạn sẽ nhận thấy rằng tôi thực sự đang ở sai điểm xuất hiện, vì vậy có

13
00:00:51,200 --> 00:00:54,080
‫thể tôi muốn xóa phần bắt đầu của người chơi thứ hai này.

14
00:00:54,080 --> 00:00:57,110
‫Nếu tôi nhấn alt p bây giờ, chúng tôi sẽ ở đúng vị trí.

15
00:00:57,110 --> 00:00:58,610
‫Có kẻ thù của tôi.

16
00:00:58,610 --> 00:01:00,050
‫Tôi có thể bắn vào kẻ thù.

17
00:01:00,050 --> 00:01:01,190
‫Tôi nhận được hiệu ứng hit.

18
00:01:01,190 --> 00:01:03,140
‫Nhưng rõ ràng là tôi không gây ra bất kỳ thiệt hại nào.

19
00:01:03,140 --> 00:01:04,250
‫Dù sao thì vẫn chưa.

20
00:01:04,700 --> 00:01:07,400
‫Và gây thiệt hại là một quá trình gồm hai phần.

21
00:01:07,400 --> 00:01:12,650
‫Phần đầu tiên là gửi thiệt hại và phần thứ hai là nhận nó.

22
00:01:12,650 --> 00:01:18,440
‫Trong bài giảng này, chúng ta sẽ giải quyết việc gửi thiệt hại cho trình phát và các lệnh gọi hàm liên quan

23
00:01:18,440 --> 00:01:19,400
‫đến điều đó.

24
00:01:19,820 --> 00:01:28,100
‫Vì vậy, điểm chính mà chúng ta sẽ xem xét là ở diễn viên Dot H và chúng ta đang tìm kiếm

25
00:01:28,100 --> 00:01:30,890
‫một hàm gọi là nhận sát thương.

26
00:01:31,340 --> 00:01:34,370
‫Và bạn có thể thấy ở đây có chức năng ảo này.

27
00:01:34,370 --> 00:01:35,960
‫Nó trả về một phao.

28
00:01:35,960 --> 00:01:41,870
‫Những gì nó trả về là thiệt hại thực tế áp dụng cho diễn viên, số tiền thực tế thực sự được áp dụng.

29
00:01:42,500 --> 00:01:50,810
‫Và những gì đi vào là số lượng thiệt hại, một sự kiện thiệt hại, cung cấp cho chúng tôi thêm thông tin về điều đó.

30
00:01:50,810 --> 00:01:54,590
‫Thiệt hại xảy ra, chúng ta có kẻ xúi giục.

31
00:01:54,590 --> 00:01:58,730
‫Vì vậy, đó là nói rằng ai là người kiểm soát chịu trách nhiệm cho việc gây ra thiệt hại này?

32
00:01:59,000 --> 00:02:03,770
‫Và sau đó người gây ra thiệt hại, đó là những gì các diễn viên phải chịu trách nhiệm?

33
00:02:03,770 --> 00:02:06,380
‫Vì vậy, trong trường hợp này, nó có thể là một khẩu súng.

34
00:02:06,380 --> 00:02:11,810
‫Hay ở đây nói là đạn nổ, đất đá rơi trúng bạn trong trường hợp

35
00:02:11,810 --> 00:02:15,830
‫này là súng bắn bạn, sẽ là người chịu trách nhiệm.

36
00:02:15,920 --> 00:02:18,920
‫Vì vậy, đó là thiệt hại trong tóm lại.

37
00:02:18,950 --> 00:02:24,230
‫Hầu hết những điều đó sẽ khá đơn giản để bạn tổng hợp lại với nhau ngoại trừ cấu trúc sự

38
00:02:24,230 --> 00:02:25,250
‫kiện thiệt hại này.

39
00:02:25,250 --> 00:02:26,510
‫Và điều đó phức tạp hơn một chút.

40
00:02:26,510 --> 00:02:32,120
‫Vì vậy, chúng ta hãy xem xét cấu trúc sự kiện thiệt hại này và xem chúng ta có thể làm gì?

41
00:02:32,150 --> 00:02:34,160
‫Nó sẽ được sáng tác như thế nào?

42
00:02:34,160 --> 00:02:36,020
‫Làm thế nào chúng ta sẽ kết hợp điều này với nhau?

43
00:02:36,020 --> 00:02:42,350
‫Bây giờ, nó không rõ ràng ngay lập tức, nhưng thực sự có hai loại phụ cho sự kiện thiệt hại này.

44
00:02:42,350 --> 00:02:47,360
‫Trên thực tế, bạn sẽ không thực sự tạo ra một sự kiện sát thương EF, mà

45
00:02:47,360 --> 00:02:54,410
‫là bạn đang tạo ra một sự kiện sát thương điểm EF, hoặc bạn sẽ tạo ra một sự kiện sát thương xuyên tâm EF.

46
00:02:54,410 --> 00:02:58,310
‫Đó là hai loại sát thương chính tồn tại trong Unreal.

47
00:02:58,310 --> 00:03:03,500
‫Bạn có thể tạo ra nhiều loại sát thương khác nhau hơn cho những thứ tùy chỉnh của riêng mình, chẳng hạn

48
00:03:03,500 --> 00:03:11,300
‫như bạn có thể có sát thương do hỏa hoạn và với các thông số khác nhau, nhưng trong trường hợp đó, chúng tôi quan tâm đến sát thương điểm và xuyên

49
00:03:11,300 --> 00:03:11,990
‫tâm EF.

50
00:03:11,990 --> 00:03:18,380
‫Vì vậy, xuyên tâm một lần nữa sẽ giống như một quả lựu đạn nổ tung, trong trường hợp đó bạn muốn nói, được

51
00:03:18,380 --> 00:03:21,020
‫rồi, đâu là bán kính, đâu là điểm rơi?

52
00:03:21,020 --> 00:03:27,470
‫Tất cả những thứ đó nếu điểm sát thương là bao nhiêu, vì nó nghe có vẻ thích hợp hơn nhiều cho những thứ

53
00:03:27,470 --> 00:03:28,310
‫như súng.

54
00:03:28,400 --> 00:03:35,930
‫Vì vậy, chúng ta sẽ tạo một sự kiện thiệt hại điểm EF và chúng ta sẽ đi tìm hàm tạo, đây là hàm tạo cho

55
00:03:35,930 --> 00:03:40,280
‫nó, và chúng ta có thể xem nó đang tham gia vào điều gì.

56
00:03:40,310 --> 00:03:41,720
‫Nó đang nhận số tiền thiệt hại một lần nữa.

57
00:03:41,720 --> 00:03:43,400
‫Vì vậy, đó là một chút lặp lại ở đó.

58
00:03:43,610 --> 00:03:48,620
‫Chúng tôi đang gặp phải kết quả trúng đích gây ra thiệt hại về điểm này.

59
00:03:48,860 --> 00:03:51,380
‫Sau đó, chúng tôi đang có hướng bắn.

60
00:03:51,380 --> 00:03:51,680
‫Tuyệt quá.

61
00:03:51,680 --> 00:03:52,880
‫Chúng tôi đã tính toán điều đó.

62
00:03:52,880 --> 00:03:58,220
‫Tôi đã suy nghĩ trước một chút khi chúng ta làm điều đó trong bài giảng trước và sau đó là lớp con

63
00:03:58,220 --> 00:03:59,540
‫của loại sát thương này.

64
00:03:59,540 --> 00:04:06,650
‫Bây giờ, điều này có thể được sử dụng để chuyển nhiều thông tin hơn để thực sự, thay vì tạo một loại sự kiện thiệt hại khác,

65
00:04:06,650 --> 00:04:09,500
‫bạn có thể tạo một loại thiệt hại khác cho mình.

66
00:04:09,500 --> 00:04:15,620
‫Vì vậy, bạn có thể có một loại lửa hoặc một cái gì đó tương tự trong trường hợp đó, bởi vì chúng tôi không cần bất kỳ loại thiệt

67
00:04:15,620 --> 00:04:16,220
‫hại nào.

68
00:04:16,220 --> 00:04:21,080
‫Chúng tôi không gây sát thương do hỏa hoạn hay bất cứ thứ gì khác tương tự như sát thương do chất độc đó gây ra.

69
00:04:21,080 --> 00:04:25,310
‫Sau đó, những gì chúng ta sẽ làm chỉ là chuyển vào một con trỏ null ở đây thay vào đó.

70
00:04:25,310 --> 00:04:31,700
‫Vì vậy, chúng ta hãy cùng nhau xây dựng một trong những thứ này và sau đó tôi sẽ để bạn gọi sự kiện nhận thiệt

71
00:04:31,700 --> 00:04:32,330
‫hại đó.

72
00:04:32,990 --> 00:04:39,680
‫Vì vậy, điều đầu tiên cần làm là dán vào kiểu, chúng ta sẽ gọi nó là sự kiện thiệt hại và sau đó

73
00:04:39,680 --> 00:04:41,510
‫chúng ta sẽ xây dựng nó.

74
00:04:41,510 --> 00:04:45,860
‫Vì vậy, trước hết, lượng sát thương, chúng tôi chưa có một trong số những thứ này cho khẩu súng.

75
00:04:45,860 --> 00:04:48,140
‫Chúng tôi không có bao nhiêu thiệt hại nó gây ra.

76
00:04:48,140 --> 00:04:51,050
‫Vì vậy, chúng tôi có thể tiếp tục và tạo một số thông tin ở đó.

77
00:04:51,050 --> 00:04:52,730
‫Chúng tôi đã có một phạm vi tối đa rồi.

78
00:04:52,730 --> 00:04:54,740
‫Chúng tôi muốn có thêm một số tài sản ở đây.

79
00:04:54,770 --> 00:05:00,440
‫Nó sẽ là một chỉnh sửa ở bất cứ đâu, điều này sẽ cho phép chúng ta nói thiệt hại về phao.

80
00:05:00,440 --> 00:05:01,400
‫Chúng ta làm thiệt hại bao nhiêu?

81
00:05:01,400 --> 00:05:05,750
‫Tôi sẽ thực hiện một thiệt hại là mười và sau đó chúng ta có thể sử dụng điều này trong C ++.

82
00:05:05,750 --> 00:05:09,320
‫Vì vậy, thiệt hại là những gì chúng ta sẽ chuyển qua như là đối số đầu tiên.

83
00:05:09,440 --> 00:05:11,510
‫Cái thứ hai là kết quả hit đó?

84
00:05:11,510 --> 00:05:13,670
‫May mắn thay, chúng tôi đã có kết quả hit được gọi là hit.

85
00:05:14,470 --> 00:05:22,450
‫Sau đó, điều tiếp theo sẽ là hướng bắn mà chúng tôi đã tính toán cho bộ phát của chúng tôi tại

86
00:05:22,450 --> 00:05:23,290
‫vị trí.

87
00:05:24,060 --> 00:05:29,730
‫Sau đó, chúng ta sẽ xem xét lớp con, lớp này sẽ chỉ là một con trỏ null.

88
00:05:30,230 --> 00:05:31,800
‫Được rồi, vậy là xong.

89
00:05:31,800 --> 00:05:36,060
‫Điều tiếp theo sẽ chỉ là giữ lấy diễn viên mà chúng tôi đang cố gắng làm hỏng.

90
00:05:36,060 --> 00:05:38,620
‫Điều đó khá đơn giản từ cú đánh bạn làm.

91
00:05:38,670 --> 00:05:41,610
‫Nhấn dấu chấm để có được diễn viên ở đây.

92
00:05:42,090 --> 00:05:48,630
‫Nhưng bạn sẽ cần phải kiểm tra xem đây không phải là null vì chúng tôi không muốn kết thúc với một tác nhân rỗng

93
00:05:48,630 --> 00:05:52,620
‫mà chúng tôi đang cố gắng gây sát thương hoặc chúng tôi sẽ kết thúc.

94
00:05:53,100 --> 00:05:58,800
‫Vì vậy, thách thức của bạn sẽ là gọi kiểm tra chức năng có thiệt hại cho tác nhân là null.

95
00:05:58,830 --> 00:06:04,690
‫Trước hết, chúng tôi không muốn một diễn viên null và gọi nhận thiệt hại và xem liệu bạn có thể biên dịch nó hay không.

96
00:06:04,710 --> 00:06:06,360
‫Tạm dừng video và tiếp tục.

97
00:06:08,480 --> 00:06:08,720
‫Được chứ.

98
00:06:08,720 --> 00:06:09,470
‫Chào mừng trở lại.

99
00:06:09,620 --> 00:06:12,260
‫Vì vậy, chúng tôi đã có diễn viên khách mời của chúng tôi ở đây.

100
00:06:12,300 --> 00:06:15,710
‫Tôi chỉ định gọi điều này là tôi sẽ đưa ra một biến số nhỏ.

101
00:06:15,710 --> 00:06:23,960
‫Vì vậy, một con trỏ diễn viên sẽ trở thành diễn viên ăn khách và sau đó chúng ta sẽ tiếp tục và thực hiện một

102
00:06:23,960 --> 00:06:31,790
‫câu lệnh if ở đây, về cơ bản nói rằng nếu diễn viên ăn khách không bằng một con trỏ null, thì chúng ta

103
00:06:31,790 --> 00:06:37,970
‫sẽ tiếp tục với diễn viên ăn khách này để gọi chức năng nhận thiệt hại trên đó.

104
00:06:38,390 --> 00:06:43,040
‫Và chúng tôi sẽ làm số lượng thiệt hại ở đây là đối số đầu tiên.

105
00:06:43,040 --> 00:06:44,630
‫Cái thứ hai là gì?

106
00:06:44,630 --> 00:06:49,250
‫Tôi chỉ định quay lại chỗ bị thương và xem xét một chút.

107
00:06:49,250 --> 00:06:54,650
‫Vì vậy, cái tiếp theo là cấu trúc mà chúng ta đã tổng hợp lại sự kiện thiệt hại này.

108
00:06:54,650 --> 00:06:56,660
‫Hãy đặt nó trong một giây.

109
00:06:56,660 --> 00:07:00,800
‫Sau đó, chúng ta sẽ xem xét bộ điều khiển đã tạo ra điều này.

110
00:07:00,800 --> 00:07:02,450
‫Đó là bộ điều khiển của chúng tôi.

111
00:07:02,450 --> 00:07:05,210
‫Người điều khiển súng là người gây sát thương.

112
00:07:05,210 --> 00:07:11,210
‫Và sau đó đây là kẻ chủ mưu là tham số cuối cùng trong thiệt hại của chúng tôi.

113
00:07:11,210 --> 00:07:19,010
‫Và chúng tôi có thể chỉ muốn xây dựng cấu trúc này bên trong này nếu tác nhân không bằng con trỏ null vì nó không

114
00:07:19,010 --> 00:07:23,750
‫cần thiết nếu chúng tôi không có tác nhân để áp dụng thiệt hại này.

115
00:07:24,410 --> 00:07:28,760
‫Vì vậy, chúng ta hãy xem xét và biên dịch và xem liệu điều này có hoạt động hay không.

116
00:07:28,760 --> 00:07:30,290
‫Vì vậy, tôi đã gặp lỗi trong nhật ký của mình.

117
00:07:30,290 --> 00:07:31,880
‫Hãy xem những gì đang xảy ra.

118
00:07:31,880 --> 00:07:33,680
‫Ồ, tôi chỉ thiếu một dấu chấm phẩy.

119
00:07:33,680 --> 00:07:34,820
‫Chà, điều đó khá dễ dàng.

120
00:07:34,820 --> 00:07:37,040
‫Một để sửa chữa sau khi diễn viên có được ở đó.

121
00:07:37,040 --> 00:07:38,330
‫Hãy đi và thử lại.

122
00:07:38,870 --> 00:07:39,320
‫Mát mẻ.

123
00:07:39,320 --> 00:07:46,760
‫Mọi thứ đã được biên dịch thành công và chúng tôi có thể tiếp tục chơi và chỉ cần kiểm tra xem việc quay phim sẽ không

124
00:07:46,760 --> 00:07:52,220
‫cung cấp cho chúng tôi bất kỳ lỗi vô hiệu nào hoặc thử và gặp sự cố động cơ.

125
00:07:52,250 --> 00:07:53,900
‫Có vẻ như không sao.

126
00:07:53,990 --> 00:08:00,770
‫Vì vậy, chúng ta sẽ chuyển sang bài giảng tiếp theo, nơi chúng ta sẽ thử và nhận thiệt hại đối với tác nhân này ở đây

127
00:08:00,770 --> 00:08:02,810
‫mà chúng ta đã đặt trong mức độ.

128
00:08:02,810 --> 00:08:03,560
‫Vì vậy, bạn ở đó.

