عناوين الوحدة: دائما ذاكرة كافية

صورة

أنت تقود فريقًا من العديد من المبرمجين والفنانين الذين يعملون على نقل لعبة PS4 VR الجميلة إلى Oculus Quest. لديك ستة أشهر للقيام بذلك. ماذا ستكون خطوتك الأولى؟ دعونا نحاول استخدام Unity Addressables.

أنت تدرك أنه يجب عليك حل العديد من المهام الصعبة إلى حد ما في نفس الوقت. بعضها سيكون أكثر صعوبة بالنسبة لك من الآخرين ، وهذا يعتمد على تجربتك في كل مجال. إذا اخترت أي منهم حرمك من النوم في أغلب الأحيان ، فماذا سيكون؟

أفترض ما يلي: سيقول 70٪ تقريبًا من القراء أن المشكلة الأكبر عند نقل اللعبة إلى Quest هي أداء وحدة المعالجة المركزية / وحدة معالجة الرسومات. يمكنني الإجابة على هذا السؤال: على الأرجح أنك على حق. يعد تحسين الإنتاجية أحد أصعب المجالات في لعبة الواقع الافتراضي. تتطلب التحسينات من هذا النوع دراسة شاملة للمنتج ، ويستغرق ذلك بعض الوقت. في بعض الأحيان يكون من المستحيل إجراء تحسين إضافي ، والذي سيتعين عليك عادةً التخلص من العناصر المكلفة في اللعب والرسومات. ومن الخطر أن يخيب آمال اللاعبين.

السرعة ، السرعة ، السرعة ... ماذا تتوقع في هذا الصدد من منصة Quest؟ ما مدى إنتاجيتها؟ الحقيقة هي أنه إذا كان لديك بالفعل خبرة في تطويره ، فأنت تعلم أنه على الرغم من حركته ، فهو قوي بشكل مدهش.

"هيا يا كاتب ، لماذا تكذب؟ يبدأ هاتفي في الإبطاء بمجرد فتح علامة التبويب الثانية للمتصفح. كيف يمكنك القول أن منصات الهواتف المحمولة يمكن أن تكون منتجة؟ "

يكمن الاختلاف الكبير في نظام التبريد النشط Quest ، والذي يمنح ميزة كبيرة لوحدة المعالجة المركزية / وحدة معالجة الرسومات الخاصة به والتي لا يتم توفيرها من قبل أي نظام أساسي محمول آخر. هذه مروحة قوية تعمل على إزالة الغبار من شعرك وتمنع المعالج من الذوبان على وجهك.

بالإضافة إلى ذلك ، يتم تحسين نظام التشغيل الأكثر تخصصًا بشكل أفضل لتقديم الواقع الافتراضي (المفاجئ) من Android القياسي. على مدار السنوات القليلة الماضية ، بدأت الأجهزة المحمولة في اللحاق بسرعة بالمنصات الثابتة.

ولكن في الوقت نفسه ، لن أنكر أن مهمة العرض المستمر بتردد 72 إطارًا في الثانية ستكون صعبة ، خاصة بالنسبة لمنافذ ألعاب الواقع الافتراضي التي تأتي من منصات قوية. عندما نتحدث عن Oculus Quest ، يمكنك تخيل Snapdragon 835 مع شاشة وبطارية وأربع كاميرات ومروحة.

ما يمكن اعتباره عيبًا يمكن اعتباره في الواقع ميزة. هذه المنصة المحمولة هي جهاز مدروس جيدًا يحتوي على حديد ضعيف. يمكننا القول أن هناك ألف حيلة معروفة لتقليل الحمل على وحدة المعالجة المركزية ووحدة معالجة الرسومات بسرعة إلى مستوى مقبول. إذا كنت مهتمًا ، فيمكنك القراءة عنه في مشاركاتي اللاحقة. وفي هذه المقالة سوف نطرح الأداء غير وارد.

قد يكون انتباهنا في هذه المشكلة أنه ، بالمقارنة مع PS4 ، فإن Quest لديه خاصية واحدة من الأجهزة تساوي نصفها: سعة ذاكرة الوصول العشوائي . على وجه التحديد ، انخفض الحجم من 8 إلى 4 غيغابايت من ذاكرة الوصول العشوائي. هذا تقريب ، لأنه في كلا النظامين الأساسيين لا يسمح نظام التشغيل باستخدامهما بالكامل ، بحيث يمكنك التتبعالعديد من النظم الفرعية اللازمة لعمل النظام الإيكولوجي. في Quest ، يمكنك استخدام ما يصل إلى 2.2 غيغابايت من ذاكرة الوصول العشوائي ؛ إذا كان أكثر من ذلك ، بدأت الفوضى بالفعل.

"ولكن ماذا تقصد بالفوضى ؟" والحقيقة هي أنه بالنسبة للعبة ، من المهم تنفيذ إدارة الذاكرة الصحيحة. حدث ذلك لأن لدينا اثنين من القيود:

  • الحد الأقصى للذاكرة : إذا تجاوزت حدًا معينًا ، فسيقوم نظام التشغيل بقتل اللعبة
  • حد الذاكرة الناعمة

من الواضح أننا لا نريد أن يحدث الأول أو الثاني في اللعبة. هل يمكنك تخيل غضب اللاعب الذي فقد آخر ساعتين من التمرير؟ نعم ، سيذهب بالتأكيد إلى متجر التطبيقات ولن يقول أي شيء لطيف هناك.

بالطبع ، فإن التوافر المضمون لـ 2.2 غيغابايت من ذاكرة الوصول العشوائي ليس كثيرًا. عادة لا تكون هذه مشكلة للمشاريع الجديدة التي يتم فيها مراقبة الإحصائيات باستمرار من البداية ، ولكنها بالتأكيد تصبح صعوبة بالنسبة لمنفذ يحتوي على أجهزة أضعف بكثير.

إذا كنت قد تعاملت مع منافذ مماثلة في الماضي ، فسوف تدرك بسرعة مدى صعوبة تقليل حجم ذاكرة الوصول العشوائي المتاحة إلى النصف . يعتمد هذا إلى حد كبير على مدى استعداد هندسة اللعبة لمثل هذا التغيير ، ولكن في معظم الحالات لا يؤدي إلا إلى الدموع.

تتمثل الإستراتيجيات الأكثر شيوعًا لتقليل متطلبات الذاكرة في تغيير معلمات ضغط الأصول وتحسين النصوص البرمجية وتقليل اختلافات التظليل وما إلى ذلك. في أغلب الأحيان ، يكون الحل الأول هو تغيير خيارات الاستيراد للأنسجة ، ولكن إذا لزم الأمر ، يمكنك استخدام ضغط الشبكات والرسوم المتحركة والصوت. المشكلة هي أن مثل هذه التقنيات معقدة عادة ولها سقفها الخاص .

لا تدعم جميع الأنظمة الأساسية نفس معلمات الاستيراد: عند التطوير لأجهزة مختلفة ، تزداد تكاليف خط أنابيب التجميع بشكل ملحوظ ، ناهيك عن مدى تعقيد ضمان الجودة ، ورسومات التصميم والبرمجة. على سبيل المثال ، هل يدعم هذا جهاز Android ASTC ، أو فقط ETC2 (وعمومًا أي منها)؟ أوه ، وما زلنا بحاجة إلى إصدارات 64 بت ، ولكن في الوقت نفسه نريد الاحتفاظ باللاعبين بإصدارات 32 بت. كم عدد حزم APK الفردية التي نحتاجها لإنشاء واختبار لكل تحديث في اللعبة؟ إذا كنت ترغب في تبسيط حياتك ، فلا يجب عليك الاعتماد فقط على هذه التقنيات.

لذلك ، نحن بحاجة إلى التعمق. بالطبع ، نريد أن يكون كل شيء بسيطًا قدر الإمكان ، خاصة عند إنشاء منفذ. يعد إعادة تدوير اللعبة بالكامل من أجل الأداء خيارًا أسوأ من مجرد عدم نقلها. كجزء من موضوع المقالة ، سأعرض إحدى أهم المزايا: ستتعلم كيفية تقليل المقدار المطلوب من الذاكرة بمقدار النصف في غضون ساعات قليلة .

أليس ذلك عظيم؟

حسنًا ، دعنا نسألني: هل هذا ممكن حقًا في قضيتك؟ سأجيب: هذا يعتمد على الشروط الأولية ، ولكن في تجربتي ، الجواب نعم . يمكن لعناوين الوحدة القيام بخدمة رائعة هنا. ما هي الحيلة؟ عليك أن تستثمر وتتقن العملية. لكن سير العمل هذا سيسمح لك بالفوز بلقب موظف الشهر.

إذا كنت مهتمًا ، فتابع القراءة.

في هذا المنشور ، سننتقل من إدارة الأصول التقليدية إلى إدارة الأصول القائمة على العناوين . لتوضيح هذه العملية ، نقوم بنقل مشروع المدرسة القديمة المبسط إلى العصر الجديد لعناوين الوحدة.

قد تطرح سؤالاً: لماذا لا تظهر النتيجة في وظيفتك الحقيقية؟

في عالم بلا منافسة ، أود فقط أن أريكم جميع المواد التي قمت بإنشائها. ومع ذلك ، في العالم الحقيقي ، على الأرجح سأعاقب على ذلك. ثم سيضعوني في السجن.

وبدلاً من ذلك ، أقدم مساعدتي: سنضع مشروعًا يقدم كل الصعوبات التي ستواجهها غدًا في مشروعك التالي. بادئ ذي بدء ، سنأخذ عناوين الوحدة إلى عائلتنا من الحزم الموصى بها .

في هذا المنشور ، سأقدم لك عناوين العناوين بحيث يمكنك تنفيذ نظام Unity Addressables الخاص بك في دقائق .


عناوين الوحدة: لماذا هم بحاجة إليها؟


يجب الانتباه إلى هذا القسم المهم. مهمتنا هي التعرف على طرق بسيطة لتحسين استخدام الذاكرة وتنفيذها بسرعة. هناك طرق مختلفة للقيام بذلك ، ولكن واحدة من أقوى الطرق وأبسطها في الوقت نفسه هي تحميل المشهد الأول وتشغيل ملف التعريف. لماذا ا؟

نظرًا لأنه يمكن التعرف على البنية غير المحسنة للعبة في أي وقت من مراحل اللعب ، فإن أسرع طريقة للتحقق من ذلك هي من خلال تحديد المشهد الأول. والسبب في ذلك هو أن الاستخدام النشط في كثير من الأحيان للنصوص مثل روابط singleton التي تحتوي على جميع الأصول ، فقط في حالة .

بعبارة أخرى ، تحتوي العديد من الألعاب عادةً على نص برمجي كلي القدرة يخلق جحيمًا من الروابط إلى الأصول .يحافظ هذا المكون على تحميل كل أصل باستمرار ، بغض النظر عما إذا كان قيد الاستخدام حاليًا.

ما مدى سوء ذلك؟

الحالات مختلفة. إذا كان من المحتمل أن تكون لعبتك محدودة بالذاكرة؟ إذن هذا قرار محفوف بالمخاطر للغاية ، لأن اللعبة لن تتطور بشكل جيد مع زيادة عدد الأصول المضافة (على سبيل المثال ، فكر في DLCs المستقبلية). إذا كنت تقوم بالتطوير للأجهزة غير المتجانسة ، على سبيل المثال ، لنظام Android ، فليس لديك مقدار واحد من الذاكرة ؛ كل جهاز له سعته الخاصة ، لذلك عليك الاعتماد على أسوأ الحالات. يمكن لنظام التشغيل أن يقرر إنهاء التطبيق في أي وقت إذا قام المستخدم بالتبديل فجأة للرد على رسالة على Facebook. عندما يعود ، ستنتظره مفاجأة - تم إغلاق اللعبة بالفعل.

هل هذا مسلي؟

بالطبع لا.

إن تعقيد الموقف هو حقيقة أنك إذا قررت في وقت لاحق (أو قرر شخص ما بالنسبة لك) نقل اللعبة إلى منصة أخرى أقل قوة مع الحفاظ على اللعب المتقاطع ، فلا يمكنك إلا حظًا سعيدًا. بالتأكيد لن ترغب في مواجهة مثل هذه المشكلة التقنية.

من ناحية أخرى ، هل هناك حالات تكون فيها إدارة الأصول التقليدية مناسبة؟ نعم بالطبع. إذا كنت تقوم بالتطوير لمنصة موحدة ، على سبيل المثال ، لـ PS4 ، ومعظم المتطلبات معروفة منذ البداية ، فإن مزايا الكائنات العالمية يمكن أن تفوق التعقيد الإضافي لنظام إدارة الذاكرة المحسن.

لأنك يجب أن تعترف: الكائن العالمي القديم الجيد الذي يخزن كل ما نحتاجه هو حل بسيط إذا كان يناسبك. سيقوم بتبسيط الكود وتحميل جميع الأصول المشار إليها مسبقًا.

مع ذلك ، إدارة الذاكرة التقليدية غير مقبولة للمطورين الذين يسعون إلى زيادة استخدام موارد الحديد . أنت تقرأ مقالًا ، مما يعني أنك تريد تحسين مهاراتك. لذا فقد حان الوقت للقيام بذلك.

تلبية عناوين الوحدة.

متطلبات المشروع مع عناوين الوحدة


إذا كنت تخطط لقراءة هذا المنشور للتو ، فستكون الشاشة كافية. إذا كنت تريد أن تفعل كل شيء معي. ثم ستحتاج إلى ما يلي:

  • اليدين
  • عقل ذكي
  • Unity 2019.2.0f1 أو أعلى
  • مشروع المستوى الأول مع GitHub (تنزيل ملف zip أو عبر سطر الأوامر)
  • الرغبة في الخوض في الدوافع الداخلية لعناوين الوحدة

يحتوي مستودع git على ثلاث عمليات تنفيذ ، واحدة لكل مستوى من هذه المشاركة (ما لم أخلط شيئًا ما وأنشئ التزامًا بإصلاح).

قم بتنزيل المشروع بتنسيق ZIP مباشرة من GitHub


مطور المستوى الأول: إدارة الأصول التقليدية


سنبدأ بأبسط طريقة لإدارة الأصول. في حالتنا ، من أجل هذا علينا عمل قائمة بالارتباطات المباشرة لمواد skybox في المكون.

إذا قمت بذلك معي ، فسوف يتخذ الاستعداد ثلاث خطوات بسيطة:

  1. قم بتنزيل المشروع من بوابة
  2. افتح مشروعًا في الوحدة
  3. انقر فوق زر التشغيل!

غرامة. الآن يمكنك النقر على الأزرار لتغيير صندوق السماء. أصلي جدا ... وممل. كما أفهمها ، لا يوجد حتى الآن عناوين الوحدة.

سترى قريباً سبب تحملنا لحظات الملل هذه.

أولاً ، كيف يتم تنظيم مشروعنا؟ يعتمد على نظامين رئيسيين. لسبب واحد ، لدينا كائن مدير اللعبة . هذا المكون هو البرنامج النصي الرئيسي الذي يقوم بتخزين الارتباطات بمواد skybox وتبديلها اعتمادًا على أحداث واجهة المستخدم. إنه بسيط للغاية.

using UnityEngine;

public class Manager : MonoBehaviour
{
    [SerializeField] private Material[] _skyboxMaterials;

    public void SetSkybox(int skyboxIndex)
    {
        RenderSettings.skybox = _skyboxMaterials[skyboxIndex];
    }
}

يوفر Manager لنظام واجهة المستخدم وظيفة لتطبيق مادة معينة على المشهد من خلال استخدام RenderSettings API .

ثانيًا ، لدينا CanvasSkyboxSelector . يحتوي كائن اللعبة هذا على مكون لوحة رسم يظهر مجموعة من الأزرار الموزعة عموديًا. يستدعي كل زر ، عند الضغط عليه ، وظيفة المدير المذكورة أعلاه ، والتي تحل محل علبة السماء المقدمة اعتمادًا على معرف الزر. بمعنى آخر ، يستدعي حدث OnClick لكل زر وظيفة SetSkybox للكائن Manager . الأمر بسيط ، أليس كذلك؟


عناوين الوحدة - التسلسل الهرمي للمشهد

الآن حان الوقت للبدء. لنفتح الملف ( ctrl / cmd + 7 أو Window - Analysis - Profiler ). سأفترض أنك على دراية بهذه الأداة ، مما يعني أنك تعرف ما يجب القيام به مع زر التسجيل العلوي . بعد بضع ثوانٍ من التسجيل ، أوقفه وانظر إلى المقاييس: وحدة المعالجة المركزية والذاكرة وما إلى ذلك. هل هناك شيء مثير للاهتمام؟

الأداء جيد جدًا ، وهذا ليس مفاجئًا نظرًا لحجم المشروع. يمكنك ببساطة تحويل هذا المشروع إلى لعبة VR وأضمن أن لا يشعر أي من اللاعبين بالمرض ، كما هو الحال غالبًا في Eve: Valkyrie .

في حالتنا ، سنركز على قسم الذاكرة. في وضع العرض البسيط ، سترى شيئًا مثل هذا:


إدارة الأصول من المستوى الأول -

قيم حجم ملفات تعريف الذاكرة البسيطة تبدو كبيرة جدًا بحيث لا يمكن عرض مربع واحد في كل مرة ، أليس كذلك؟ مفاجأة في انتظارك: يمكن العثور على نمط مماثل في العديد من الألعاب غير المحسنة ، والتي ستقودها إلى التطوير . ولكن في حالتنا ، إنها مجرد مجموعة من صناديق السماء. في المشاريع الأخرى ، ستكون هذه شخصيات وكواكب وأصوات وموسيقى ...

إذا كانت المسؤولية عن العمل مع العديد من الأصول تقع على عاتقك ، فأنا سعيد لأنك تقرأ هذا المقال. سأساعدك على الانتقال إلى حل يتطور بشكل جيد.

لقد حان الوقت للسحر. تبديل ملف تعريف الذاكرة إلى الوضع المطول. شاهد هذه!


إدارة الأصول المستوى 1 - ملامح الذاكرة التفصيلية

لعنة ، ماذا حدث هنا؟ يتم تحميل جميع زخارف السحاب في الذاكرة ، ولكن يتم عرض واحد فقط منها في المرة الواحدة. ترى ما حصلنا عليه؟ تأخذ هذه البنية الخام ما يصل إلى 400 ميغابايت .

هذا بالتأكيد لا يناسبنا ، نظرًا لأن هذه مجرد قطعة صغيرة من اللعبة المستقبلية. سيصبح حل هذه المشكلة نفسها أساس القسم التالي.

لخص:

  • تتضمن إدارة الأصول التقليدية روابط مباشرة
  • لذلك ، يتم تحميل جميع الكائنات باستمرار
  • لا يتطور المشروع بشكل جيد


مطور المستوى 2: عملية وحدات معالجة العناوين


في الألعاب ، نبدأ من المستوى 1 ، وهذا يناسبنا ، ولكن بمجرد معرفة قواعد اللعب ، حان الوقت لمغادرة أسوار المدينة الآمنة ورفع مستوانا. هذا ما يدور حوله هذا القسم.

الآن قم بتنزيل مشروع المستوى 2 .

كما رأينا سابقًا في ملف التعريف ، يتم تحميل جميع صناديق Skybox في الذاكرة ، على الرغم من استخدام واحد فقط بنشاط . هذا الحل لا يتدرج ، لأنه في مرحلة ما سنكون مقيدين بعدد من اختلافات الأصول المختلفة التي يمكننا تقديمها للاعب. ما النصيحة التي يمكنني تقديمها؟ لا تقصر اهتمام اللعبة على المستخدمين.

دعني اساعدك. خذ مجرفة لحفر نفق كسر الحماية لإدارة الأصول التقليدية. دعونا نضيف أداة جديدة مثيرة للاهتمام إلى مجموعتنا: Unity Addressables API .

أول شيء يتعين علينا القيام به هو تثبيت حزمة Addressables. للقيام بذلك ، انتقل إلى Window → Package Manager :


مدير حزمة الوحدة - عناوين الوحدة

بعد التثبيت ، نحتاج إلى وضع علامة على المواد على أنها عناوين. حددها وقم بتفعيل علامة عناوين في نافذة المفتش.


إدارة أصول المستوى 2 (عناوين Unity)

لذا نطلب بأدب من Unity تضمين هذه المواد وتوابعها في قاعدة بيانات العناوين. سيتم استخدام قاعدة البيانات هذه أثناء عمليات البناء لحزم الأصول في أجزاء ، والتي يمكن تحميلها بسهولة في أي وقت في اللعبة.

الآن سأريكم شيئا رائعا. افتح النافذة -> إدارة الأصول -> العناوين . خمن ما هذا؟ هذه هي قاعدة بياناتنا التي تتوق إلى الحياة!


إدارة عناوين الأصول Unity Level 2 هي النافذة الرئيسية

عزيزي القارئ ، كان هذا هو الجزء السهل. والآن تبدأ المتعة.

أريدك أن تزور صديقنا القديم من القسم السابق: سيدي المدير . إذا تحققنا منها ، سنجد أنها لا تزال تخزن روابط مباشرة إلى الأصول! نحن لسنا بحاجة لهذا.

بدلاً من ذلك ، سنعلم المدير كيفية استخدام الروابط غير المباشرة ، أي AssetReference (في Unreal Engine يطلق عليها المراجع الناعمة).

دعونا نجعل مكوننا أكثر جمالا:

using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;

public class Manager : MonoBehaviour
{
    [SerializeField] private List<AssetReference> _skyboxMaterials;

    private AsyncOperationHandle  _currentSkyboxMaterialOperationHandle;

    public void SetSkybox(int skyboxIndex)
    {
        StartCoroutine(SetSkyboxInternal(skyboxIndex));
    }

    private IEnumerator SetSkyboxInternal(int skyboxIndex)
    {
        if (_currentSkyboxMaterialOperationHandle.IsValid())
        {
            Addressables.Release(_currentSkyboxMaterialOperationHandle);
        }

        var skyboxMaterialReference = _skyboxMaterials[skyboxIndex];
        _currentSkyboxMaterialOperationHandle = skyboxMaterialReference.LoadAssetAsync();
        yield return _currentSkyboxMaterialOperationHandle;
        RenderSettings.skybox = _currentSkyboxMaterialOperationHandle.Result;
    }
}

هنا يحدث ما يلي:

  • 7, (AssetReference) . , . . .
  • 13: , . ,
  • 18-20 , , , , . , API Addressables, , . — , , addressable-.
  • addressable 23, LoadAssetAsync, yield ( 25), . . !
  • , , , 26. Result, , .


إدارة الأصول من المستوى 2 (عناوين الوحدة) - قائمة مراجع الأصول

تذكر: هذا الرمز غير جاهز للإنتاج. لا تستخدمه عند برمجة طائرة. قررت أنه من أجل البساطة ، التضحية بالموثوقية.

لكن تفسير كاف. حان الوقت لرؤيته في العمل.

يرجى اتباع الخطوات التالية:

  1. في النافذة عناوين ، قم بإعداد المحتوى ( إنشاء محتوى مشغل )
  2. ثم قم ببناء النظام الأساسي المحدد
  3. قم بتشغيله وربط ملف التعريف (الذاكرة) به.
  4. لا تسقط فكك على حين غرة.


المستوى 2 (عناوين الوحدة) - بناء محتوى اللاعب


إدارة الذاكرة من المستوى 2 (عناوين الوحدة) - ملفات تعريف الذاكرة

أليس الأصول المطبوخة لذيذة؟

يعجبني عندما يكون المحلل راضٍ. والآن نرى أسعد الملامح في العالم. ملف التعريف الراضٍ يعني ما يلي: أولاً ، هناك المزيد من اللاعبين الراضين الذين يمكنهم لعب لعبتك حتى على Nokia 3210 . ثانياً ، هؤلاء منتجون راضون. وبالنسبة لك ، هذا يعني أن محفظتك ستكون راضية.

هذه هي قوة نظام العناوين.

لكن تفرض العناوين الرئيسية تكاليف عمل إضافية صغيرة. من ناحية ، يحتاج المبرمجون إلى تقديم الدعم لتدفقات العمل غير المتزامنة (يتم تنفيذ ذلك بسهولة باستخدام coroutine). بالإضافة إلى ذلك ، سيتعين على المصممين دراسة قدرات النظام ، على سبيل المثال ، المجموعات التي يمكن التعامل معها ، واكتساب الخبرة لاتخاذ قرارات مستنيرة. وأخيرًا ، سيكون قسم تكنولوجيا المعلومات سعيدًا جدًا لأنه سيتعين عليك تكوين البنية التحتية لنقل الأصول عبر الشبكة إذا كنت تفضل استضافتها عبر الإنترنت.

يجب أن أهنئكم. سأشرح ما حققناه:

  • إدارة الذاكرة المناسبة.
  • التمهيد أسرع.
  • وقت تثبيت أسرع ، حجم تطبيق أقل في المتجر.
  • زيادة توافق الجهاز.
  • العمارة غير المتزامنة.
  • فتحوا الباب لتخزين هذا المحتوى على الإنترنت → أي فصل البيانات عن الكود.

سأكون فخورا بهذه الإنجازات. هذا عائد جيد على استثماراتنا في العمل.

لا تنسَ ذكر التجربة مع العناوين في مقابلة.

المواد الداعمة: إنشاء مثيلات وحساب الارتباط. يمكن العثور على معلومات حول هذا الموضوع في بلدي آخر .

اختياري: استراتيجيات تنزيل بديلة. يمكنك أن تقرأ عنها في منشوري .

لخص:

  • تتمتع إدارة الأصول القائمة على العناوين بمقاييس جيدة بشكل ملحوظ.
  • تضيف عناوين العناوين سلوكًا غير متزامن
  • لا تنس أن تعد المحتوى للتغييرات ، وإلا ستكون اللعبة ذات لون وردي!


المستوى 3 - إدارة الأصول (؟؟) - توصيل محتوى الشبكة

المستوى 3 - إدارة الأصول (؟؟) - توصيل محتوى الشبكة


في القسم السابق ، حققنا أهم اختراق. حسّن مهاراتك بالانتقال من نظام إدارة الأصول التقليدي إلى سير العمل المستند إلى العناوين. يعد هذا انتصارًا كبيرًا للمشروع ، لأنه بفضل الوقت الصغير الذي وفرناه مساحة لتوسيع حجم الأصول ، مع الحفاظ على مستوى منخفض من استهلاك الذاكرة. هذا الإنجاز قام بالفعل بترقيتك إلى المستوى 2 ، تهانينا! ومع ذلك ، لا يزال يتعين علينا الإجابة على سؤال آخر:

هل هذا كل شيء؟

لا . بالكاد تطرقنا إلى موضوع العناوين ، هناك طرق أخرى لتحسين المشروع بفضل هذه الحزمة القوية.

بالطبع ، لا تحتاج إلى تذكر جميع تفاصيل استخدام العناوين ، ولكن أوصي بشدة بقراءتها لفترة وجيزة ، لأنك ستلتقي في المستقبل على الأرجح باختبارات جديدة ، وستكون ممتنًا لإجراء دراسة أعمق. هذا هو السبب في أنني أعدت دليلا قصيرا آخر.

ستتعلم منه الجوانب التالية:

  • نافذة عناوين : تفاصيل مهمة
  • التنميط عنونة : لا تدع تسريبات الذاكرة تدمر حياتك
  • توصيل الشبكة : تقليل الوقت من التثبيت إلى اللعب
  • تكامل خط أنابيب التجميع
  • الاستراتيجيات العملية : تسريع سير العمل ، والقضاء على الحاجة إلى استراحات القهوة لمدة عشر دقائق

والأهم أننا سنجيب على الأسئلة التالية:

  • ما هو المعنى الخفي لـ Send Profiler Events ؟
  • ما مدى فائدة واجهة برمجة تطبيقات AddressableAssetSettings ؟
  • كيف يمكن دمج كل هذا مع واجهة برمجة تطبيقات BuildPlayerWindow ؟
  • ما هو الفرق بين الوضع الظاهري و الوضع معبأة ؟

المستوى 3 التوجيه يمكن العثور عليها في بلدي آخر .

All Articles