يونٽي پيڪيج مئنيجر

اتحاد هڪ پليٽ فارم آهي جيڪو ڪجهه وقت کان ڀرسان آهي ۽ مسلسل ترقي ڪري رهيو آهي. تنهن هوندي، جڏهن ان ۾ ڪم ڪري رهيا آهيو ڪيترن ئي منصوبن سان هڪ ئي وقت ۾، توهان اڃا تائين عام ذريعن (.cs)، لائبريريون (.dll) ۽ ٻين اثاثن (تصويرون، آواز، ماڊل، prefabs) استعمال ڪرڻ ۾ مشڪلاتن کي منهن ڏئي سگهو ٿا. هن مقالي ۾ اسان جي باري ۾ ڳالهائي ويندي اسان جي تجربي جي هڪ ڏيتي ليتي حل سان اتحاد لاء اهڙي هڪ مسئلو.

يونٽي پيڪيج مئنيجر

گڏيل وسيلن جي تقسيم جا طريقا

مختلف منصوبن لاءِ گڏيل وسيلن کي استعمال ڪرڻ لاءِ هڪ کان وڌيڪ طريقا آهن، پر هر هڪ طريقي جا پنهنجا فائدا ۽ نقصان آهن.

1. نقل - اسان "هٿ سان" منصوبن جي وچ ۾ وسيلن کي نقل ڪريون ٿا.

پرو:

  • وسيلن جي سڀني قسمن لاء مناسب.
  • ڪوبه انحصار مسئلو ناهي.
  • اثاثن جي GUIDs سان ڪوبه مسئلو ناهي.

ڪن

  • وڏا ذخيرا.
  • نسخي جو ڪو به امڪان ناهي.
  • گڏيل وسيلن ۾ تبديلين کي ٽريڪ ڪرڻ ۾ مشڪل.
  • گڏيل وسيلن کي اپڊيٽ ڪرڻ ۾ مشڪل.

2. Git submodules - ٻاهرين ذيلي ماڊلز ذريعي گڏيل وسيلن جي ورڇ.

پرو:

  • توهان ذريعن سان ڪم ڪري سگهو ٿا.
  • توھان اثاثن کي تقسيم ڪري سگھو ٿا.
  • ڪوبه انحصار مسئلو ناهي.

ڪن

  • Git تجربو گهربل.
  • Git بائنري فائلن سان تمام دوستانه نه آهي - توهان کي LFS سان ڳنڍڻو پوندو.
  • مخزنن تائين رسائي ڪنٽرول.
  • نسخن کي اپڊيٽ ڪرڻ ۽ گھٽائڻ ۾ مشڪل.
  • GUID ٽڪر ممڪن آهن ۽ اتحاد جي طرفان انهن کي حل ڪرڻ لاءِ ڪو واضح رويو ناهي.

3. NuGet - NuGet پيڪيجز ذريعي حصيداري لائبريرين جي ورڇ.

پرو:

  • منصوبن سان آسان ڪم جيڪي اتحاد تي منحصر نه آهن.
  • آسان ورزننگ ۽ انحصار حل.

ڪن

  • اتحاد دٻي مان نڪرندڙ NuGet پيڪيجز سان ڪم نٿو ڪري سگھي (GitHub تي توھان ڳولي سگھو ٿا NuGet Package Manager for Unity، جيڪو ھن کي درست ڪري ٿو، پر ڪجھ نانڪس آھن).
  • ٻين قسمن جي اثاثن کي ورهائڻ ۾ مشڪلات.

4. يونيٽي پيڪيج مئنيجر - گڏيل وسيلن جي ورڇ اتحاد لاءِ مقامي حل ذريعي.

پرو:

  • پيڪيجز سان ڪم ڪرڻ لاء اصلي انٽرفيس.
  • GUID تضادن جي ڪري پيڪيجز ۾ .meta فائلن کي اوور رائٽنگ ڪرڻ جي خلاف تحفظ.
  • نسخي جو امڪان.
  • اتحاد لاء وسيلن جي سڀني قسمن کي ورهائڻ جي صلاحيت.

ڪن

  • GUID تڪرار اڃا به ٿي سگھي ٿو.
  • عملدرآمد لاء ڪو به دستاويز نه آهي.

پوئين طريقي ۾ نقصانن کان وڌيڪ فائدا آھن. بهرحال، اهو هاڻي تمام گهڻو مشهور ناهي، دستاويزن جي کوٽ جي ڪري، تنهنڪري اسان ان تي تفصيل سان ڳالهائينداسين.

يونٽي پيڪيج مئنيجر

يونٽي پيڪيج مئنيجر (UPM) هڪ پيڪيج مينيجمينٽ جو اوزار آهي. اهو يونٽي 2018.1 ۾ شامل ڪيو ويو ۽ صرف انهن پيڪيجز لاءِ استعمال ڪيو ويو جيڪي يونٽي ٽيڪنالاجيز پاران ٺاهيا ويا هئا. بهرحال، نسخو 2018.3 سان شروع ٿي، اهو ممڪن ٿيو ته ڪسٽم پيڪيجز شامل ڪرڻ.

يونٽي پيڪيج مئنيجر
يونٽي پيڪيج مئنيجر انٽرفيس

پيڪيجز پروجيڪٽ ذريعن (اثاثن جي ڊاريڪٽري) ۾ ختم نه ٿيندا آهن. اهي هڪ الڳ ڊاريڪٽري ۾ آهن %projectFolder%/Library/PackageCache ۽ پروجيڪٽ کي ڪنهن به طريقي سان متاثر نه ڪريو، انهن جو صرف سورس ڪوڊ ۾ ذڪر فائل ۾ آهي packages/manifest.json.

يونٽي پيڪيج مئنيجر
پروجيڪٽ فائل سسٽم ۾ پيڪيجز

پيڪيج جا ذريعا

UPM ڪيترن ئي پئڪيج ذريعن کي استعمال ڪري سگھن ٿا:

1. فائيل سسٽم.

پرو:

  • عملدرآمد جي رفتار.
  • ٽئين پارٽي اوزار جي ضرورت نه رکندو آھي.

ڪن

  • نسخي ۾ مشڪل.
  • فائل سسٽم تائين حصيداري رسائي جي ضرورت آهي هر ڪنهن لاءِ پروجيڪٽ سان ڪم ڪندڙ.

2. Git مخزن.

پرو:

  • توهان کي صرف هڪ Git مخزن جي ضرورت آهي.

ڪن

  • توھان UPM ونڊو ذريعي ورجن جي وچ ۾ تبديل نٿا ڪري سگھو.
  • سڀني Git repositories سان ڪم نٿو ڪري.

3. npm مخزن.

پرو:

  • مڪمل طور تي UPM ڪارڪردگي کي سپورٽ ڪري ٿو ۽ سرڪاري يونٽي پيڪيجز کي ورهائڻ لاء استعمال ڪيو ويندو آهي.

ڪن

  • في الحال "-preview" کانسواءِ پيڪيجز جي سڀني اسٽرنگ ورجن کي نظرانداز ڪري ٿو.

هيٺ اسين UPM + npm عمل درآمد تي نظر ڪنداسين. هي بنڊل آسان آهي ڇو ته اهو توهان کي ڪنهن به قسم جي وسيلن سان ڪم ڪرڻ ۽ پيڪيج ورزن کي منظم ڪرڻ جي اجازت ڏئي ٿو، ۽ پڻ مڪمل طور تي مقامي UPM انٽرفيس کي سپورٽ ڪري ٿو.

توھان ان کي استعمال ڪري سگھو ٿا npm مخزن جي طور تي ورڊيڪيو. هڪ تفصيلي آهي دستاويز، ۽ ان کي هلائڻ لاءِ صرف چند حڪمن جي ضرورت آھي.

ماحول کي ترتيب ڏيڻ

پهرين توهان کي انسٽال ڪرڻ جي ضرورت آهي node.js.

هڪ پيڪيج ٺاهڻ

هڪ پيڪيج ٺاهڻ لاء، توهان کي فائل رکڻ جي ضرورت آهي package.json، جيڪو ان کي بيان ڪندو، ڊاريڪٽري ڏانهن هن پيڪيج جي مواد سان. توھان کي ھيٺ ڏنل ڪرڻ جي ضرورت آھي:

پروجيڪٽ ڊاريڪٽري ڏانهن وڃو جيڪو اسان هڪ پيڪيج ٺاهڻ چاهيون ٿا.

هلو npm init ڪمانڊ ۽ ڊائلاگ دوران گهربل قدر داخل ڪريو. نالي لاءِ، نالو بيان ڪريو ريورس ڊومين فارميٽ ۾، مثال طور com.plarium.somepackage.
آسانيءَ سان پيڪيج جو نالو ڊسپلي ڪرڻ لاءِ، displayName ملڪيت شامل ڪريو package.json ۽ ڀريو.

جيئن ته npm js-oriented آهي، فائل ۾ مکيه ۽ اسڪرپٽ جا خاصيتون شامل آهن جن جي اسان کي ضرورت ناهي، جنهن کي يونٽ استعمال نٿو ڪري. اهو بهتر آهي ته انهن کي هٽايو وڃي ته جيئن پئڪيج جي تفصيل کي خراب نه ٿئي. فائل کي ڪجهه هن طرح ڏسڻ گهرجي:

  1. پروجيڪٽ ڊاريڪٽري ڏانهن وڃو جيڪو اسان هڪ پيڪيج ٺاهڻ چاهيون ٿا.
  2. هلو npm init ڪمانڊ ۽ ڊائلاگ دوران گهربل قدر داخل ڪريو. نالي لاءِ، نالو بيان ڪريو ريورس ڊومين فارميٽ ۾، مثال طور com.plarium.somepackage.
  3. آسانيءَ سان پيڪيج جو نالو ڊسپلي ڪرڻ لاءِ، displayName ملڪيت شامل ڪريو package.json ۽ ڀريو.
  4. جيئن ته npm js-oriented آهي، فائل ۾ مکيه ۽ اسڪرپٽ جا خاصيتون شامل آهن جن جي اسان کي ضرورت ناهي، جنهن کي يونٽ استعمال نٿو ڪري. اهو بهتر آهي ته انهن کي هٽايو وڃي ته جيئن پئڪيج جي تفصيل کي خراب نه ٿئي. فائل کي ڪجهه هن طرح ڏسڻ گهرجي:
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. Unity کوليو ۽ .meta فائل ٺاھيو package.json لاءِ (يونيٽي .meta فائلن کان سواءِ اثاثا نه ڏسندي آھي، يونٽي لاءِ پيڪيجز کوليا ويندا آھن رڳو پڙھڻ لاءِ).

پيڪيج موڪلڻ

پيڪيج موڪلڻ لاء توهان کي حڪم هلائڻ جي ضرورت آهي: npm publish --registry *адрес до хранилища пакетов*.

يونٽي پيڪيج مئنيجر ذريعي پيڪيجز کي انسٽال ڪرڻ ۽ تازه ڪاري ڪرڻ

يونيٽي پروجيڪٽ ۾ پيڪيج شامل ڪرڻ لاءِ، توھان کي ضرورت آھي:

  1. فائل ۾ شامل ڪريو manifest.json پيڪيجز جي ذريعن بابت ڄاڻ. هن کي ڪرڻ لاء توهان کي ملڪيت شامل ڪرڻ جي ضرورت آهي scopedRegistries ۽ ڏيکاريو اسڪوپس ۽ ماخذ ايڊريس جتي مخصوص اسڪوپس ڳوليا ويندا.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "адрес до хранилища пакетов",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. يونيٽي ڏانھن وڃو ۽ پيڪيج مئنيجر ونڊو کوليو (ڪسٽم پيڪيجز سان ڪم ڪرڻ بلٽ ان وارن سان ڪم ڪرڻ کان مختلف ناهي).
  3. سڀ پيڪيجز چونڊيو.
  4. توھان کي گهربل پيڪيج ڳولھيو ۽ ان کي شامل ڪريو.

يونٽي پيڪيج مئنيجر

ذريعن ۽ ڊيبنگ سان ڪم ڪرڻ

منصوبي سان ڳنڍيل ذريعن لاء، توهان کي ٺاهڻ جي ضرورت آهي اسيمبلي جي تعريف پيڪيج لاء.

پيڪيجز استعمال ڪرڻ توهان جي ڊيبگنگ اختيارن کي محدود نٿو ڪري. بهرحال، جڏهن اتحاد ۾ پيڪيجز سان ڪم ڪري رهيا آهيو، توهان ڪنسول ۾ غلطي تي ڪلڪ ڪندي IDE ڏانهن نه ٿا وڃو جيڪڏهن غلطي پئڪيج ۾ اچي ٿي. اهو حقيقت جي ڪري آهي ته اتحاد اسڪرپٽ کي الڳ فائلن جي طور تي نه ڏسي، ڇاڪاڻ ته جڏهن اسيمبليء جي تعريف کي استعمال ڪندي اهي لائبريري ۾ گڏ ڪيا ويا آهن ۽ منصوبي ۾ شامل آهن. جڏهن هڪ منصوبي جي ذريعن سان ڪم ڪري رهيو آهي، IDE تي ڪلڪ ڪرڻ موجود آهي.

هڪ منسلڪ پيڪيج سان منصوبي ۾ اسڪرپٽ:

يونٽي پيڪيج مئنيجر
ڪم ڪندڙ بريڪ پوائنٽ سان پيڪيج مان اسڪرپٽ:

يونٽي پيڪيج مئنيجر

پيڪيجز جي تڪڙي اصلاح

يونيٽي پيڪيجز ھڪڙي منصوبي ۾ شامل ڪيا ويا آھن صرف پڙھڻ لاء، پر تبديل ڪري سگھجن ٿيون پيڪيج ڪيش ۾. هن کي ڪرڻ لاء توهان کي ضرورت آهي:

  1. پيڪيج ڪيش ۾ پيڪيج ڏانھن وڃو.

    يونٽي پيڪيج مئنيجر

  2. ضروري تبديليون ڪريو.
  3. فائل ۾ ورجن اپڊيٽ ڪريو package.json.
  4. پيڪيج موڪليو npm publish --registry *адрес до хранилища пакетов*.
  5. UPM انٽرفيس ذريعي صحيح ٿيل نسخي کي اپڊيٽ ڪريو.

پيڪيج جي درآمد ۾ تضاد

ھيٺيون GUID تڪرار ٿي سگھي ٿو جڏھن پيڪيجز درآمد ڪريو:

  1. پيڪيج- پيڪيج. جيڪڏهن، هڪ پيڪيج درآمد ڪرڻ وقت، اهو دريافت ڪيو ويو آهي ته اڳ ۾ شامل ڪيل پيڪيجز ساڳيا GUID سان اثاثن تي مشتمل آهن، درآمد ٿيل پيڪيج مان ملندڙ GUID سان گڏ اثاثا پروجيڪٽ ۾ شامل نه ڪيا ويندا.
  2. هڪ پيڪيج هڪ منصوبو آهي. جيڪڏهن، هڪ پيڪيج درآمد ڪرڻ وقت، اهو دريافت ڪيو ويو آهي ته پروجيڪٽ ۾ ملندڙ GUIDs سان اثاثن تي مشتمل آهي، پوء پيڪيج مان اثاثا پروجيڪٽ ۾ شامل نه ڪيا ويندا. جڏهن ته، اثاثا جيڪي انهن تي ڀاڙيندا آهن اهي منصوبي مان اثاثا استعمال ڪرڻ شروع ڪندا.

اثاثن کي منتقلي هڪ منصوبي کان هڪ پيڪيج ڏانهن

جيڪڏھن توھان ھڪڙي اثاثن کي ھڪڙي منصوبي کان ھڪڙي پيڪيج ڏانھن منتقل ڪريو جڏھن اتحاد کليل آھي، ان جي ڪارڪردگي محفوظ ٿي ويندي، ۽ انحصار اثاثن ۾ لنڪس پيڪيج مان اثاثو استعمال ڪرڻ شروع ڪندا.

اهم: جڏهن هڪ اثاثن کي هڪ پروجيڪٽ کان هڪ پيڪيج ڏانهن نقل ڪندي، مٿي ڏنل حصي ۾ بيان ڪيل "پيڪيج - پروجيڪٽ" تڪرار پيدا ٿيندو.

تڪرارن جا ممڪن حل

  1. اسان جي پنهنجي الگورتھم استعمال ڪندي GUIDs کي ٻيهر تفويض ڪرڻ جڏهن سڀني اثاثن کي درآمد ڪرڻ لاء ٽڪرين کي ختم ڪرڻ لاء.
  2. سڀني اثاثن کي ھڪڙي منصوبي ۾ شامل ڪرڻ ۽ پوء انھن کي پيڪيجز ۾ ورهائڻ.
  3. ڊيٽابيس ٺاهڻ جنهن ۾ سڀني اثاثن جي GUIDs شامل آهن ۽ پيڪيجز موڪلڻ وقت تصديق ڪرڻ.

ٿڪل

UPM اتحاد ۾ حصيداري وسيلن کي ورهائڻ لاء هڪ نئون حل آهي، جيڪو موجوده طريقن لاء هڪ قابل متبادل ٿي سگهي ٿو. مضمون ۾ بيان ڪيل سفارشون حقيقي ڪيسن تي ٻڌل هيون. اسان کي اميد آهي ته توهان انهن کي مفيد ملندو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو