ஒற்றுமை தொகுப்பு மேலாளர்

ஒற்றுமை என்பது ஒரு தளமாகும், இது சில காலமாக உள்ளது மற்றும் தொடர்ந்து உருவாகி வருகிறது. இருப்பினும், ஒரே நேரத்தில் பல திட்டங்களுடன் அதில் பணிபுரியும் போது, ​​பொதுவான ஆதாரங்கள் (.cs), நூலகங்கள் (.dll) மற்றும் பிற சொத்துக்களை (படங்கள், ஒலிகள், மாதிரிகள், ப்ரீஃபாப்கள்) பயன்படுத்துவதில் சிக்கல்களை நீங்கள் சந்திக்கலாம். இந்த கட்டுரையில் ஒற்றுமைக்கான அத்தகைய பிரச்சினைக்கு ஒரு சொந்த தீர்வுடன் எங்கள் அனுபவத்தைப் பற்றி பேசுவோம்.

ஒற்றுமை தொகுப்பு மேலாளர்

பகிரப்பட்ட வள விநியோக முறைகள்

வெவ்வேறு திட்டங்களுக்கு பகிரப்பட்ட ஆதாரங்களைப் பயன்படுத்த ஒன்றுக்கு மேற்பட்ட வழிகள் உள்ளன, ஆனால் ஒவ்வொரு அணுகுமுறையும் அதன் நன்மை தீமைகளைக் கொண்டுள்ளது.

1. நகல் - திட்டங்களுக்கு இடையில் வளங்களை "கையால்" நகலெடுக்கிறோம்.

நன்மை:

  • அனைத்து வகையான வளங்களுக்கும் ஏற்றது.
  • சார்பு பிரச்சனைகள் இல்லை.
  • சொத்து வழிகாட்டிகளில் எந்த பிரச்சனையும் இல்லை.

தீமைகள்:

  • மாபெரும் களஞ்சியங்கள்.
  • பதிப்பு சாத்தியம் இல்லை.
  • பகிரப்பட்ட ஆதாரங்களில் மாற்றங்களைக் கண்காணிப்பதில் சிரமம்.
  • பகிரப்பட்ட ஆதாரங்களைப் புதுப்பிப்பதில் சிரமம்.

2. ஜிட் துணை தொகுதிகள் - வெளிப்புற துணை தொகுதிகள் மூலம் பகிரப்பட்ட வளங்களின் விநியோகம்.

நன்மை:

  • நீங்கள் ஆதாரங்களுடன் வேலை செய்யலாம்.
  • நீங்கள் சொத்துக்களை விநியோகிக்கலாம்.
  • சார்பு பிரச்சனைகள் இல்லை.

தீமைகள்:

  • Git அனுபவம் தேவை.
  • பைனரி கோப்புகளுடன் Git மிகவும் நட்பாக இல்லை - நீங்கள் LFS ஐ இணைக்க வேண்டும்.
  • களஞ்சியங்களுக்கான அணுகல் கட்டுப்பாடு.
  • பதிப்புகளை மேம்படுத்துதல் மற்றும் தரமிறக்குவதில் சிரமம்.
  • GUID மோதல்கள் சாத்தியம் மற்றும் அவற்றைத் தீர்க்க யூனிட்டியின் தரப்பில் தெளிவான நடத்தை எதுவும் இல்லை.

3. NuGet - NuGet தொகுப்புகள் மூலம் பகிரப்பட்ட நூலகங்களின் விநியோகம்.

நன்மை:

  • ஒற்றுமையை சார்ந்து இல்லாத திட்டங்களுடன் வசதியான வேலை.
  • வசதியான பதிப்பு மற்றும் சார்பு தீர்மானம்.

தீமைகள்:

  • யூனிட்டிக்கு வெளியே NuGet தொகுப்புகளுடன் வேலை செய்ய முடியாது (கிட்ஹப்பில் யூனிட்டிக்கான NuGet தொகுப்பு மேலாளரைக் காணலாம், இது இதை சரிசெய்கிறது, ஆனால் சில நுணுக்கங்கள் உள்ளன).
  • பிற வகையான சொத்துக்களை விநியோகிப்பதில் சிரமங்கள்.

4. யூனிட்டி பேக்கேஜ் மேனேஜர் - யூனிட்டிக்கான சொந்த தீர்வு மூலம் பகிரப்பட்ட வளங்களை விநியோகித்தல்.

நன்மை:

  • தொகுப்புகளுடன் வேலை செய்வதற்கான சொந்த இடைமுகம்.
  • GUID முரண்பாடுகள் காரணமாக தொகுப்புகளில் .meta கோப்புகளை மேலெழுதுவதற்கு எதிரான பாதுகாப்பு.
  • பதிப்பு சாத்தியம்.
  • ஒற்றுமைக்கான அனைத்து வகையான வளங்களையும் விநியோகிக்கும் திறன்.

தீமைகள்:

  • GUID முரண்பாடுகள் இன்னும் ஏற்படலாம்.
  • செயல்படுத்த எந்த ஆவணமும் இல்லை.

பிந்தைய முறை தீமைகளை விட அதிக நன்மைகளைக் கொண்டுள்ளது. இருப்பினும், ஆவணங்கள் இல்லாததால் இது இப்போது மிகவும் பிரபலமாக இல்லை, எனவே நாங்கள் அதை விரிவாகப் பார்ப்போம்.

ஒற்றுமை தொகுப்பு மேலாளர்

Unity Package Manager (UPM) என்பது ஒரு தொகுப்பு மேலாண்மை கருவியாகும். இது யூனிட்டி 2018.1 இல் சேர்க்கப்பட்டது மற்றும் யூனிட்டி டெக்னாலஜிஸ் உருவாக்கிய தொகுப்புகளுக்கு மட்டுமே பயன்படுத்தப்பட்டது. இருப்பினும், பதிப்பு 2018.3 இல் தொடங்கி, தனிப்பயன் தொகுப்புகளைச் சேர்க்க முடிந்தது.

ஒற்றுமை தொகுப்பு மேலாளர்
யூனிட்டி பேக்கேஜ் மேனேஜர் இடைமுகம்

தொகுப்புகள் திட்ட ஆதாரங்களில் முடிவடையாது (சொத்துக்கள் அடைவு). அவை தனி அடைவில் உள்ளன %projectFolder%/Library/PackageCache மேலும் திட்டத்தை எந்த வகையிலும் பாதிக்க வேண்டாம், மூலக் குறியீட்டில் உள்ள ஒரே குறிப்பு கோப்பில் உள்ளது packages/manifest.json.

ஒற்றுமை தொகுப்பு மேலாளர்
திட்ட கோப்பு முறைமையில் உள்ள தொகுப்புகள்

தொகுப்பு ஆதாரங்கள்

UPM பல தொகுப்பு ஆதாரங்களைப் பயன்படுத்தலாம்:

1. கோப்பு முறைமை.

நன்மை:

  • செயல்படுத்தும் வேகம்.
  • மூன்றாம் தரப்பு கருவிகள் தேவையில்லை.

தீமைகள்:

  • பதிப்பில் சிரமம்.
  • திட்டத்தில் பணிபுரியும் அனைவருக்கும் கோப்பு முறைமைக்கான பகிரப்பட்ட அணுகல் தேவை.

2. Git களஞ்சியம்.

நன்மை:

  • உங்களுக்கு தேவையானது ஒரு Git களஞ்சியமாகும்.

தீமைகள்:

  • UPM சாளரத்தின் மூலம் நீங்கள் பதிப்புகளுக்கு இடையில் மாற முடியாது.
  • அனைத்து Git களஞ்சியங்களுடனும் வேலை செய்யாது.

3. npm களஞ்சியம்.

நன்மை:

  • UPM செயல்பாட்டை முழுமையாக ஆதரிக்கிறது மற்றும் அதிகாரப்பூர்வ யூனிட்டி தொகுப்புகளை விநியோகிக்கப் பயன்படுகிறது.

தீமைகள்:

  • தற்போது "-preview" தவிர அனைத்து சரம் பதிப்பு தொகுப்புகளையும் புறக்கணிக்கிறது.

கீழே நாம் UPM + npm செயல்படுத்தலைப் பார்ப்போம். இந்த தொகுப்பு வசதியானது, ஏனெனில் இது எந்த வகையான ஆதாரங்களுடனும் வேலை செய்ய மற்றும் தொகுப்பு பதிப்புகளை நிர்வகிக்க உங்களை அனுமதிக்கிறது, மேலும் சொந்த UPM இடைமுகத்தையும் முழுமையாக ஆதரிக்கிறது.

நீங்கள் அதை ஒரு npm களஞ்சியமாகப் பயன்படுத்தலாம் வெர்டாசியோ. ஒரு விரிவான உள்ளது ஆவணங்கள், மற்றும் அதை இயக்க ஓரிரு கட்டளைகள் தேவை.

சூழலை அமைத்தல்

முதலில் நீங்கள் நிறுவ வேண்டும் Node.js.

ஒரு தொகுப்பை உருவாக்குதல்

ஒரு தொகுப்பை உருவாக்க, நீங்கள் கோப்பை வைக்க வேண்டும் package.json, இந்த தொகுப்பின் உள்ளடக்கங்களைக் கொண்ட கோப்பகத்திற்கு அதை விவரிக்கும். நீங்கள் பின்வருவனவற்றைச் செய்ய வேண்டும்:

நாம் ஒரு தொகுப்பை உருவாக்க விரும்பும் திட்ட அடைவுக்குச் செல்லவும்.

npm init கட்டளையை இயக்கி, உரையாடலின் போது தேவையான மதிப்புகளை உள்ளிடவும். பெயருக்கு, தலைகீழ் டொமைன் வடிவத்தில் பெயரைக் குறிப்பிடவும், எடுத்துக்காட்டாக com.plarium.somepackage.
தொகுப்பின் பெயரை வசதியாகக் காட்ட, displayName பண்பை pack.json இல் சேர்த்து நிரப்பவும்.

npm js-சார்ந்ததாக இருப்பதால், நமக்குத் தேவையில்லாத முக்கிய மற்றும் ஸ்கிரிப்ட் பண்புகளைக் கொண்ட கோப்பு, யூனிட்டி பயன்படுத்தாது. தொகுப்பு விளக்கத்தை ஒழுங்கீனம் செய்யாமல் இருக்க அவற்றை அகற்றுவது நல்லது. கோப்பு இப்படி இருக்க வேண்டும்:

  1. நாம் ஒரு தொகுப்பை உருவாக்க விரும்பும் திட்ட அடைவுக்குச் செல்லவும்.
  2. npm init கட்டளையை இயக்கி, உரையாடலின் போது தேவையான மதிப்புகளை உள்ளிடவும். பெயருக்கு, தலைகீழ் டொமைன் வடிவத்தில் பெயரைக் குறிப்பிடவும், எடுத்துக்காட்டாக com.plarium.somepackage.
  3. தொகுப்பின் பெயரை வசதியாகக் காட்ட, displayName பண்பை pack.json இல் சேர்த்து நிரப்பவும்.
  4. npm js-சார்ந்ததாக இருப்பதால், நமக்குத் தேவையில்லாத முக்கிய மற்றும் ஸ்கிரிப்ட் பண்புகளைக் கொண்ட கோப்பு, யூனிட்டி பயன்படுத்தாது. தொகுப்பு விளக்கத்தை ஒழுங்கீனம் செய்யாமல் இருக்க அவற்றை அகற்றுவது நல்லது. கோப்பு இப்படி இருக்க வேண்டும்:
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. யூனிட்டியைத் திறந்து, package.jsonக்கான .meta கோப்பை உருவாக்கவும் (.meta கோப்புகள் இல்லாமல் யூனிட்டி சொத்துக்களைப் பார்க்காது, யூனிட்டிக்கான தொகுப்புகள் படிக்க மட்டும் திறக்கப்படும்).

ஒரு தொகுப்பை அனுப்புகிறது

தொகுப்பை அனுப்ப நீங்கள் கட்டளையை இயக்க வேண்டும்: npm publish --registry *адрес до хранилища пакетов*.

யூனிட்டி பேக்கேஜ் மேனேஜர் மூலம் தொகுப்புகளை நிறுவுதல் மற்றும் புதுப்பித்தல்

யூனிட்டி திட்டத்தில் ஒரு தொகுப்பைச் சேர்க்க, உங்களுக்கு:

  1. கோப்பில் சேர்க்கவும் manifest.json தொகுப்புகளின் ஆதாரம் பற்றிய தகவல். இதைச் செய்ய, நீங்கள் சொத்தை சேர்க்க வேண்டும் scopedRegistries குறிப்பிட்ட நோக்கங்கள் தேடப்படும் நோக்கங்கள் மற்றும் மூல முகவரியைக் குறிப்பிடவும்.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "адрес до хранилища пакетов",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. யூனிட்டிக்குச் சென்று, தொகுப்பு மேலாளர் சாளரத்தைத் திறக்கவும் (தனிப்பயன் தொகுப்புகளுடன் பணிபுரிவது உள்ளமைக்கப்பட்டவற்றுடன் வேலை செய்வதிலிருந்து வேறுபட்டதல்ல).
  3. அனைத்து தொகுப்புகளையும் தேர்ந்தெடுக்கவும்.
  4. உங்களுக்குத் தேவையான தொகுப்பைக் கண்டுபிடித்து அதைச் சேர்க்கவும்.

ஒற்றுமை தொகுப்பு மேலாளர்

ஆதாரங்களுடன் பணிபுரிதல் மற்றும் பிழைத்திருத்தம்

திட்டத்துடன் இணைக்கப்பட்ட ஆதாரங்களுக்கு, நீங்கள் உருவாக்க வேண்டும் சட்டசபை வரையறை தொகுப்புக்காக.

தொகுப்புகளைப் பயன்படுத்துவது உங்கள் பிழைத்திருத்த விருப்பங்களை மட்டுப்படுத்தாது. இருப்பினும், யூனிட்டியில் தொகுப்புகளுடன் பணிபுரியும் போது, ​​தொகுப்பில் பிழை ஏற்பட்டால், கன்சோலில் உள்ள பிழையைக் கிளிக் செய்வதன் மூலம் ஐடிஇக்கு செல்ல முடியாது. யூனிட்டி ஸ்கிரிப்ட்களை தனி கோப்புகளாகப் பார்க்காததே இதற்குக் காரணம், ஏனெனில் சட்டசபை வரையறையைப் பயன்படுத்தும் போது அவை நூலகத்தில் சேகரிக்கப்பட்டு திட்டத்தில் சேர்க்கப்படுகின்றன. ஒரு திட்டத்தில் இருந்து ஆதாரங்களுடன் பணிபுரியும் போது, ​​IDE ஐ கிளிக் செய்வதன் மூலம் கிடைக்கும்.

இணைக்கப்பட்ட தொகுப்பைக் கொண்ட திட்டத்தில் ஸ்கிரிப்ட்:

ஒற்றுமை தொகுப்பு மேலாளர்
வேலை செய்யும் இடைவெளியுடன் தொகுப்பிலிருந்து ஸ்கிரிப்ட்:

ஒற்றுமை தொகுப்பு மேலாளர்

தொகுப்புகளுக்கான அவசர திருத்தங்கள்

திட்டப்பணியில் சேர்க்கப்படும் யூனிட்டி தொகுப்புகள் படிக்க மட்டுமே, ஆனால் தொகுப்பு தற்காலிக சேமிப்பில் திருத்த முடியும். இதைச் செய்ய உங்களுக்குத் தேவை:

  1. தொகுப்பு தற்காலிக சேமிப்பில் உள்ள தொகுப்புக்குச் செல்லவும்.

    ஒற்றுமை தொகுப்பு மேலாளர்

  2. தேவையான மாற்றங்களைச் செய்யுங்கள்.
  3. கோப்பில் பதிப்பைப் புதுப்பிக்கவும் package.json.
  4. தொகுப்பை அனுப்பவும் npm publish --registry *адрес до хранилища пакетов*.
  5. UPM இடைமுகம் மூலம் தொகுப்பு பதிப்பை திருத்தப்பட்டதாக புதுப்பிக்கவும்.

தொகுப்பு இறக்குமதி முரண்பாடுகள்

தொகுப்புகளை இறக்குமதி செய்யும் போது பின்வரும் GUID முரண்பாடுகள் ஏற்படலாம்:

  1. தொகுப்பு - தொகுப்பு. ஒரு தொகுப்பை இறக்குமதி செய்யும் போது, ​​ஏற்கனவே சேர்க்கப்பட்ட தொகுப்புகளில் அதே GUID உள்ள சொத்துக்கள் இருப்பது கண்டறியப்பட்டால், இறக்குமதி செய்யப்பட்ட தொகுப்பிலிருந்து பொருந்தக்கூடிய GUIDகள் உள்ள சொத்துக்கள் திட்டத்தில் சேர்க்கப்படாது.
  2. தொகுப்பு என்பது ஒரு திட்டம். ஒரு தொகுப்பை இறக்குமதி செய்யும் போது, ​​திட்டத்தில் பொருந்தக்கூடிய GUIDகள் உள்ள சொத்துக்கள் இருப்பது கண்டறியப்பட்டால், தொகுப்பில் உள்ள சொத்துக்கள் திட்டத்தில் சேர்க்கப்படாது. இருப்பினும், அவற்றைச் சார்ந்துள்ள சொத்துக்கள் திட்டத்திலிருந்து சொத்துகளைப் பயன்படுத்தத் தொடங்கும்.

ஒரு திட்டத்திலிருந்து ஒரு தொகுப்பிற்கு சொத்துக்களை மாற்றுதல்

யூனிட்டி திறந்திருக்கும் போது நீங்கள் ஒரு திட்டத்திலிருந்து ஒரு சொத்தை ஒரு தொகுப்பிற்கு மாற்றினால், அதன் செயல்பாடு பாதுகாக்கப்படும், மேலும் சார்பு சொத்துக்களில் உள்ள இணைப்புகள் தொகுப்பிலிருந்து சொத்தைப் பயன்படுத்தத் தொடங்கும்.

முக்கியமான: ஒரு ப்ராஜெக்ட்டில் இருந்து ஒரு சொத்தை ஒரு தொகுப்பிற்கு நகலெடுக்கும் போது, ​​மேலே உள்ள பிரிவில் விவரிக்கப்பட்டுள்ள “பேக்கேஜ் - ப்ராஜெக்ட்” முரண்பாடு ஏற்படும்.

மோதல்களுக்கு சாத்தியமான தீர்வுகள்

  1. மோதல்களை அகற்ற அனைத்து சொத்துக்களையும் இறக்குமதி செய்யும் போது எங்கள் சொந்த அல்காரிதம்களைப் பயன்படுத்தி GUIDகளை மறுஒதுக்கீடு செய்தல்.
  2. அனைத்து சொத்துக்களையும் ஒரு திட்டத்தில் சேர்த்து, பின்னர் அவற்றை தொகுப்புகளாகப் பிரிக்கவும்.
  3. அனைத்து சொத்துக்களின் GUIDகள் அடங்கிய தரவுத்தளத்தை உருவாக்குதல் மற்றும் தொகுப்புகளை அனுப்பும் போது சரிபார்த்தல்.

முடிவுக்கு

யூனிட்டியில் பகிரப்பட்ட வளங்களை விநியோகிப்பதற்கான ஒரு புதிய தீர்வாக UPM உள்ளது, இது ஏற்கனவே உள்ள முறைகளுக்கு ஒரு தகுதியான மாற்றாக இருக்கும். கட்டுரையில் விவரிக்கப்பட்டுள்ள பரிந்துரைகள் உண்மையான நிகழ்வுகளை அடிப்படையாகக் கொண்டவை. அவை உங்களுக்கு பயனுள்ளதாக இருக்கும் என நம்புகிறோம்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்