﻿1
00:00:04,320 --> 00:00:05,040
‫أهلا ومرحبا.

2
00:00:05,040 --> 00:00:11,940
‫سيكون موضوع هذه المحاضرة هو وظيفة أخذ الضرر للممثل وكيف نسميها.

3
00:00:11,940 --> 00:00:14,700
‫دعنا نتعمق ونكتشف كل شيء عنه.

4
00:00:15,770 --> 00:00:21,110
‫حتى نتمكن من إلحاق الضرر بشيء ما ، نحتاج بالفعل إلى شيء يمكننا

5
00:00:21,110 --> 00:00:22,250
‫ضربه.

6
00:00:22,370 --> 00:00:29,480
‫لذلك دعنا ننتقل إلى مسار متصفح المحتوى الخاص بنا ونحضر إحدى شخصيات BP shooter.

7
00:00:29,810 --> 00:00:36,170
‫لأن ما يحدث في الواقع هو إذا أدخلت شخصية إلى المشهد ، فإن Unreal تلقائيًا ستجعل هذه الشخصية

8
00:00:36,170 --> 00:00:43,190
‫يتحكم فيها الذكاء الاصطناعي وستكون الشخصيات التي تفرخ عند بدء اللاعب يتحكم فيها اللاعب.

9
00:00:43,190 --> 00:00:44,660
‫هذا رائع.

10
00:00:44,660 --> 00:00:45,890
‫هذا هو بالضبط السلوك الذي نريده.

11
00:00:45,890 --> 00:00:51,200
‫إذا تقدمت وضغطت على alt p ، فستلاحظ أنني في الواقع في نقطة التكاثر الخاطئة ، لذلك

12
00:00:51,200 --> 00:00:54,080
‫ربما أرغب في حذف بداية هذا اللاعب الثاني.

13
00:00:54,080 --> 00:00:57,110
‫إذا قمت بالضغط على alt p الآن ، فسنكون في الموقع الصحيح.

14
00:00:57,110 --> 00:00:58,610
‫هناك عدوي.

15
00:00:58,610 --> 00:01:00,050
‫يمكنني إطلاق النار على العدو.

16
00:01:00,050 --> 00:01:01,190
‫أحصل على تأثير الضرب.

17
00:01:01,190 --> 00:01:03,140
‫لكن من الواضح أنني لا ألحق أي ضرر.

18
00:01:03,140 --> 00:01:04,250
‫ليس الان على اي حال.

19
00:01:04,700 --> 00:01:07,400
‫وإحداث الضرر هو عملية من جزأين.

20
00:01:07,400 --> 00:01:12,650
‫الجزء الأول هو إرسال الضرر والجزء الثاني يتلقى الضرر.

21
00:01:12,650 --> 00:01:18,440
‫في هذه المحاضرة ، سوف نتعامل مع إرسال الضرر للاعب واستدعاءات الوظائف المتضمنة

22
00:01:18,440 --> 00:01:19,400
‫في ذلك.

23
00:01:19,820 --> 00:01:28,100
‫لذا فإن الشيء الرئيسي الذي سننظر إليه هو الممثل Dot H ونحن نبحث عن استدعاء

24
00:01:28,100 --> 00:01:30,890
‫وظيفي يسمى تلقي الضرر.

25
00:01:31,340 --> 00:01:34,370
‫ويمكنك أن ترى هنا هذه الوظيفة الافتراضية هنا.

26
00:01:34,370 --> 00:01:35,960
‫تقوم بإرجاع عدد عشري.

27
00:01:35,960 --> 00:01:41,870
‫ما يعود هو الضرر الفعلي الذي لحق بالممثل ، المبلغ الفعلي الذي تم تطبيقه بالفعل.

28
00:01:42,500 --> 00:01:50,810
‫وما يحدث هو مقدار الضرر ، حدث الضرر ، والذي يعطينا المزيد من المعلومات حول ذلك.

29
00:01:50,810 --> 00:01:54,590
‫الضرر الذي حدث لدينا محرض.

30
00:01:54,590 --> 00:01:58,730
‫إذن هذا يقول من كان المتحكم المسؤول عن التسبب في هذا الضرر؟

31
00:01:59,000 --> 00:02:03,770
‫ثم مسبب الضرر ، ما هو المسؤول عن الفاعل؟

32
00:02:03,770 --> 00:02:06,380
‫لذلك في هذه الحالة ، قد يكون مسدسًا.

33
00:02:06,380 --> 00:02:11,810
‫أم أنه يقول هنا القذيفة التي انفجرت ، الصخرة التي سقطت عليك في هذه الحالة

34
00:02:11,810 --> 00:02:15,830
‫، المسدس الذي أطلق عليك ، سيكون الممثل المسؤول.

35
00:02:15,920 --> 00:02:18,920
‫لذا فإن هذا يسبب الضرر باختصار.

36
00:02:18,950 --> 00:02:24,230
‫يجب أن يكون معظم ذلك واضحًا جدًا بالنسبة لك لتجميعه باستثناء هيكل حدث

37
00:02:24,230 --> 00:02:25,250
‫الضرر هذا.

38
00:02:25,250 --> 00:02:26,510
‫وهذا أكثر تعقيدًا بعض الشيء.

39
00:02:26,510 --> 00:02:32,120
‫لذلك دعونا نلقي نظرة على هيكل حدث الضرر هذا ونرى ماذا يمكننا أن نفعل؟

40
00:02:32,150 --> 00:02:34,160
‫كيف سيتم تكوينه؟

41
00:02:34,160 --> 00:02:36,020
‫كيف سنجمع هذا معًا؟

42
00:02:36,020 --> 00:02:42,350
‫الآن ، هذا ليس واضحًا على الفور ، ولكن يوجد في الواقع نوعان فرعيان لحدث الضرر هذا.

43
00:02:42,350 --> 00:02:47,360
‫من الناحية العملية ، لن تقوم بالفعل بإنشاء حدث ضرر

44
00:02:47,360 --> 00:02:54,410
‫EF ، ولكن بدلاً من ذلك ستنشئ حدث ضرر نقطة EF ، أو ستنشئ حدث ضرر شعاعي EF.

45
00:02:54,410 --> 00:02:58,310
‫هذان هما النوعان الرئيسيان من الضرر الموجودان في Unreal.

46
00:02:58,310 --> 00:03:03,500
‫يمكنك إنشاء المزيد من أنواع الضرر المختلفة للأشياء المخصصة الخاصة بك ، مثل

47
00:03:03,500 --> 00:03:11,990
‫قد يكون لديك تلف ناتج عن حريق ومع معلمات مختلفة ، ولكن في هذه الحالة ، نحن مهتمون بالتلف الشعاعي EF الشعاعي وتلف النقاط.

48
00:03:11,990 --> 00:03:18,380
‫لذا سيكون الشعاعي مرة أخرى شيئًا مثل انفجار قنبلة يدوية ، وفي هذه الحالة تريد أن تقول ، حسنًا

49
00:03:18,380 --> 00:03:21,020
‫، أين هو نصف القطر ، ما هو السقوط؟

50
00:03:21,020 --> 00:03:27,470
‫كل هذه الأنواع من الأشياء حيث يكون الضرر النقطي ، حيث يبدو أكثر ملاءمة لأشياء مثل

51
00:03:27,470 --> 00:03:28,310
‫البنادق.

52
00:03:28,400 --> 00:03:35,930
‫لذلك سننشئ حدث ضرر نقطة EF وسنذهب ونبحث عن المُنشئ ، ها هو المُنشئ

53
00:03:35,930 --> 00:03:40,280
‫له ، ويمكننا أن نرى ما الذي سيتضمنه.

54
00:03:40,310 --> 00:03:41,720
‫إنه يأخذ مقدار الضرر مرة أخرى.

55
00:03:41,720 --> 00:03:43,400
‫هذا قليل من التكرار هناك.

56
00:03:43,610 --> 00:03:48,620
‫لدينا نتيجة النتيجة التي تسببت في حدوث ضرر لهذه النقطة.

57
00:03:48,860 --> 00:03:51,380
‫ثم نحصل على اتجاه التصوير.

58
00:03:51,380 --> 00:03:51,680
‫رائعة.

59
00:03:51,680 --> 00:03:52,880
‫لقد حسبنا ذلك بالفعل.

60
00:03:52,880 --> 00:03:58,220
‫كنت أفكر في المستقبل قليلاً عندما فعلنا ذلك في المحاضرة السابقة ثم هذه الفئة الفرعية

61
00:03:58,220 --> 00:03:59,540
‫من نوع الضرر.

62
00:03:59,540 --> 00:04:06,650
‫الآن يمكن استخدام هذا لتمرير المزيد من المعلومات بحيث في الواقع ، بدلاً من إنشاء نوع مختلف من أحداث الضرر ، من

63
00:04:06,650 --> 00:04:09,500
‫المحتمل أن تنشئ نوعًا مختلفًا من الضرر.

64
00:04:09,500 --> 00:04:15,620
‫لذلك قد يكون لديك نوع حريق أو شيء من هذا القبيل في هذه الحالة ، لأننا لسنا بحاجة إلى أي نوع من أنواع

65
00:04:15,620 --> 00:04:16,220
‫الضرر.

66
00:04:16,220 --> 00:04:21,080
‫نحن لا نتسبب في أضرار حريق أو أي شيء إضافي مثل ضرر السم.

67
00:04:21,080 --> 00:04:25,310
‫ثم ما سنفعله هو تمرير مؤشر فارغ هنا بدلاً من ذلك.

68
00:04:25,310 --> 00:04:32,330
‫لذلك دعونا نجرب بناء واحد من هؤلاء معًا وبعد ذلك سأدعك تستدعي حدث أخذ الضرر.

69
00:04:32,990 --> 00:04:39,680
‫لذا فإن أول شيء يجب القيام به هو لصق الكتابة ، سنسميها حدث الضرر ومن ثم

70
00:04:39,680 --> 00:04:41,510
‫سنقوم ببنائها.

71
00:04:41,510 --> 00:04:45,860
‫لذا أولاً وقبل كل شيء ، مقدار الضرر ، حسنًا ، ليس لدينا واحد من هؤلاء للبندقية حتى الآن.

72
00:04:45,860 --> 00:04:48,140
‫ليس لدينا مقدار الضرر الذي تسببه.

73
00:04:48,140 --> 00:04:51,050
‫لذا يمكننا المضي قدمًا وإنشاء بعض المعلومات هناك.

74
00:04:51,050 --> 00:04:52,730
‫لدينا نطاق أقصى بالفعل.

75
00:04:52,730 --> 00:04:54,740
‫نريد المزيد من العقارات هنا.

76
00:04:54,770 --> 00:05:00,440
‫سيكون تعديلًا في أي مكان ، وهو ما سيسمح لنا بقول ضرر تعويم.

77
00:05:00,440 --> 00:05:01,400
‫ما مقدار الضرر الذي نحدثه؟

78
00:05:01,400 --> 00:05:05,750
‫سأقوم بإلحاق الضرر بعشرة ثم يمكننا استخدام هذا في C ++.

79
00:05:05,750 --> 00:05:09,320
‫إذن ، الضرر هو ما سنقوم بتمريره باعتباره الوسيطة الأولى.

80
00:05:09,440 --> 00:05:11,510
‫والثاني هو أن النتيجة؟

81
00:05:11,510 --> 00:05:13,670
‫حسنًا ، لحسن الحظ ، حصلنا على نتائج تسمى ضرب.

82
00:05:14,470 --> 00:05:23,290
‫ثم سيكون الشيء التالي هو اتجاه اللقطة الذي حسبناه بالفعل لباعثنا في الموقع.

83
00:05:24,060 --> 00:05:29,730
‫ثم سنلقي نظرة على الفئة الفرعية ، والتي ستكون مجرد مؤشر فارغ.

84
00:05:30,230 --> 00:05:31,800
‫حسنًا ، لقد تم ذلك.

85
00:05:31,800 --> 00:05:36,060
‫الشيء التالي سيكون مجرد التمسك بالممثل الذي نحاول إلحاق الضرر به.

86
00:05:36,060 --> 00:05:38,620
‫هذا واضح إلى حد ما من الضربة التي تقوم بها.

87
00:05:38,670 --> 00:05:41,610
‫ضرب نقطة الحصول على ممثل هنا.

88
00:05:42,090 --> 00:05:48,630
‫لكنك ستحتاج إلى التحقق من أن هذا ليس فارغًا لأننا لا نريد أن ينتهي بنا الأمر بممثل باطل نحاول

89
00:05:48,630 --> 00:05:52,620
‫إلحاق الضرر به أو سننتهي في النهاية بالانهيار.

90
00:05:53,100 --> 00:05:58,800
‫لذلك سيكون التحدي الخاص بك هو استدعاء هذا التحقق من وظيفة الضرر للتأكد من أن الممثل لاغٍ.

91
00:05:58,830 --> 00:06:04,690
‫بادئ ذي بدء ، نحن لا نريد فاعلًا فارغًا ونقوم باستدعاء الضرر ومعرفة ما إذا كان يمكنك الحصول عليه ليتم تجميعه.

92
00:06:04,710 --> 00:06:06,360
‫أوقف الفيديو واذهب.

93
00:06:08,480 --> 00:06:08,720
‫تمام.

94
00:06:08,720 --> 00:06:09,470
‫مرحبًا بعودتك.

95
00:06:09,620 --> 00:06:12,260
‫لذلك لدينا ضيفنا الممثل هنا.

96
00:06:12,300 --> 00:06:15,710
‫سأسمي هذا سأعطي هذا متغيرًا صغيرًا.

97
00:06:15,710 --> 00:06:23,960
‫إذن ، سيكون مؤشر الممثل هو الممثل الناجح ، ثم سنمضي قدمًا ونقوم ببيان if هنا

98
00:06:23,960 --> 00:06:31,790
‫، ونقول أساسًا ما إذا كان الممثل الناجح لا يساوي مؤشر فارغ ، فسنمضي قدمًا

99
00:06:31,790 --> 00:06:37,970
‫مع هذا الممثل الناجح لاستدعاء وظيفة أخذ الضرر عليه.

100
00:06:38,390 --> 00:06:43,040
‫وسنحدد مقدار الضرر هنا هو الحجة الأولى.

101
00:06:43,040 --> 00:06:44,630
‫ماذا كان الثاني؟

102
00:06:44,630 --> 00:06:49,250
‫سأعود فقط إلى مكان الضرر وإلقاء نظرة صغيرة.

103
00:06:49,250 --> 00:06:54,650
‫إذن ، التالي هو الهيكل الذي وضعناه معًا في حدث الضرر هذا.

104
00:06:54,650 --> 00:06:56,660
‫دعونا نضع ذلك في ثانية.

105
00:06:56,660 --> 00:07:00,800
‫ثم سنلقي نظرة على وحدة التحكم التي صنعت هذا.

106
00:07:00,800 --> 00:07:02,450
‫حسنًا ، هذه هي وحدة التحكم الخاصة بنا.

107
00:07:02,450 --> 00:07:05,210
‫وحدة تحكم البندقية هي التي تسبب الضرر.

108
00:07:05,210 --> 00:07:11,210
‫وبعد ذلك كان هذا المحرض هو المعلمة الأخيرة في تحصيل الضرر لدينا.

109
00:07:11,210 --> 00:07:19,010
‫وربما نريد فقط بناء هذا الهيكل داخل هذا إذا كان الممثل لا يساوي مؤشر فارغ لأنه غير ضروري

110
00:07:19,010 --> 00:07:23,750
‫إذا لم يكن لدينا ممثل لتطبيق هذا الضرر عليه.

111
00:07:24,410 --> 00:07:28,760
‫لذلك دعونا نذهب ونجمع ونرى ما إذا كان هذا سيعمل.

112
00:07:28,760 --> 00:07:30,290
‫لذلك حصلت على خطأ في السجل الخاص بي.

113
00:07:30,290 --> 00:07:31,880
‫دعونا نرى ما يحدث.

114
00:07:31,880 --> 00:07:33,680
‫أوه ، أنا فقط أفتقد الفاصلة المنقوطة.

115
00:07:33,680 --> 00:07:34,820
‫حسنًا ، هذا سهل جدًا.

116
00:07:34,820 --> 00:07:37,040
‫واحد لإصلاحه بعد الحصول على الممثل هناك.

117
00:07:37,040 --> 00:07:38,330
‫دعنا نذهب ونحاول مرة أخرى.

118
00:07:38,870 --> 00:07:39,320
‫رائع.

119
00:07:39,320 --> 00:07:46,760
‫تم تجميع كل شيء بنجاح ويمكننا المضي قدمًا واللعب والتحقق من أن إطلاق النار

120
00:07:46,760 --> 00:07:52,220
‫لن يعطينا أي أخطاء فارغة أو محاولة تعطل المحرك.

121
00:07:52,250 --> 00:07:53,900
‫يبدو أنه بخير.

122
00:07:53,990 --> 00:08:00,770
‫لذلك سننتقل إلى المحاضرة التالية حيث سنحاول ونستقبل الضرر الذي لحق بهذا الممثل هنا والذي

123
00:08:00,770 --> 00:08:02,810
‫وضعناه في المستوى.

124
00:08:02,810 --> 00:08:03,560
‫إذن أنت هناك.

