আমার কোনও সংস্করণ নিয়ন্ত্রণ ছাড়াই Unক্য প্রকল্প রয়েছে এবং আমার এটি অন্য বিকাশকারীর সাথে ভাগ করে নেওয়া দরকার যাতে আমরা দু'জনেই প্রকল্পটিতে কাজ করতে পারি।
ইউনিটি অ্যাসেটগুলির সাথে দুর্দান্ত কৌশলগুলি কী ব্যবহার করা উচিত?
আমার কোনও সংস্করণ নিয়ন্ত্রণ ছাড়াই Unক্য প্রকল্প রয়েছে এবং আমার এটি অন্য বিকাশকারীর সাথে ভাগ করে নেওয়া দরকার যাতে আমরা দু'জনেই প্রকল্পটিতে কাজ করতে পারি।
ইউনিটি অ্যাসেটগুলির সাথে দুর্দান্ত কৌশলগুলি কী ব্যবহার করা উচিত?
উত্তর:
সংস্করণ নিয়ন্ত্রণটি সঠিকভাবে সমর্থন করার জন্য ইউনিটির একটি বিল্ট ইন সুবিধা রয়েছে।
কেবল ফাইল-> প্রকল্প সেটিংস-> সম্পাদক এ যান এবং বাহ্যিক সংস্করণ নিয়ন্ত্রণ সক্ষম করুন।
আমি গিট ব্যবহার করার পরামর্শ দিচ্ছি, এটি নিখরচায় এবং সর্বোত্তম।
কিছুক্ষণ আগে আমি আমার ব্লগে সংস্করণ নিয়ন্ত্রণ (গিট ব্যবহার করে) সম্পর্কে লিখেছিলাম
দীর্ঘ সংক্ষিপ্ত বিবরণ:
বাহির সংস্করণ নিয়ন্ত্রণ ফাইল-> প্রকল্প সেটিংস-> সম্পাদক সক্ষম করুন এবং রেপোতে অপ্রয়োজনীয় জিনিস এড়াতে .gitignore ফাইলটি তৈরি করুন (এটি সত্যই প্রয়োজনীয় নয়, তবে এটি উন্নয়নের সময় অমূল্য হবে)।
ফাইলটি দেখতে কেমন হওয়া উচিত তা এখানে:
[Oo]bj/
[Tt]emp/
[Ll]ibrary
#These are files in the root folder of the project
*.tmproj
*.csproj
*.unityproj
*.sln
*.suo
*.user
*.pidb
*.userprefs
.gitingore
ইউনিটি প্রকল্পগুলির জন্য আমি ব্যবহারের কিন্তু কয়েক ommissions সঙ্গে [Bb]uild/
, *.booproj
, sysinfo.txt
। আমি নিশ্চিত যে আমি যা ব্যবহার করি তা itক্যের ( github.com/github/gitignore/blob/master/Unity.gitignore ) যেকোন উদ্দেশ্য-সি ( আইওএসকে লক্ষ্য করে লক্ষ্য করার সময়) এর জন্য নতুন-রেপো টেম্পলেটগুলির উপর ভিত্তি করে ।
ইউনিটি 3.0 সাবঅভারশন সহ সুন্দরভাবে খেলতে কনফিগার করা হয়েছে। (কমপক্ষে আগের চেয়ে কম সুন্দর) আমি জানি না এটি কেবল প্রো সংস্করণে আছে কি না, আমাকে যাচাই করতে হবে।
যদিও সাধারণভাবে, সর্বাধিক প্রস্তাবিত সংস্করণ নিয়ন্ত্রণ ব্যবস্থাটি ইউনিটি অ্যাসেট সার্ভার Server
Ityক্য নির্দিষ্ট - সর্বদা বিভিন্ন দৃশ্যে এবং বিভিন্ন কোড ফাইলগুলিতে কাজ করুন এবং ম্যানুয়ালি অন্য ব্যক্তির পরিবর্তনে মার্জ করুন। যদি আপনার উভয়েরই একই দৃশ্যে কাজ করা প্রয়োজন হয় তবে এটির সদৃশ করুন এবং অনুলিপিটি পরীক্ষা হিসাবে ব্যবহার করুন। অন্যথায়, যদি আপনি উভয়ই একই দৃশ্য সংশোধন করেন তবে এক ব্যক্তির পরিবর্তনগুলি অন্যটিকে ওভাররাইট করে দেবে। আপনি এখনও আপনার উত্স ফাইলগুলির জন্য সোর্স নিয়ন্ত্রণ ব্যবহার করতে পারেন, কেবল একবার সেগুলি তৈরি হয়ে গেলে ফাইল সিস্টেমে বা ityক্যের মাধ্যমে এগুলিকে মোটেও স্থানান্তরিত করবেন না।
শুরুর পরামর্শ - নিজেকে একটি শালীন ডিফার্ফ / মার্জ টুল (আমার উইনমার্গ পছন্দ হয় ) এবং অন্য ব্যক্তি কী পরিবর্তন করেছে তা দেখার জন্য এবং দ্বন্দ্বযুক্ত ফাইলগুলিতে ম্যানুয়ালি পরিবর্তিত হওয়ার জন্য এটি ব্যবহার করতে অভ্যস্ত হন । একটি কেন্দ্রীয় ডকুমেন্টেশন স্পেস সেট আপ করুন, যেমন। গুগল রাইটিং ডকুমেন্ট বা উইকি এবং সেখানে আপনার ডকুমেন্টেশন রাখুন - ডকুমেন্টেশনে ন্যূনতম সময়ে একটি প্রাথমিক বৈশিষ্ট্য তালিকা থাকা উচিত যাতে আপনি কীভাবে লক্ষ্য রাখছেন তা জানতে পারবেন এবং একটি সুস্পষ্ট ইঙ্গিত সহ বৈশিষ্ট্য তালিকা থেকে প্রাপ্ত কোনও কার্য তালিকার আদর্শ হতে হবে কে কাজ উপর কাজ করছে। কাকে কোন টাস্কে কাজ করা দরকার এবং তারা কাজ শেষ হওয়ার সাথে সাথে তালিকাটি ছাড়িয়ে যায় সে সম্পর্কে মোটামুটি ধারণা পেতে একে অপরের সাথে কথা বলুন। সবকিছু এখনও বৈধ কিনা এবং যদি আপনার কোনও অগ্রাধিকার পুনরায় কাজ করতে হয় তা দেখার জন্য তালিকাটি পুনরায় পর্যালোচনা এবং পুনরায় মূল্যায়ন করতে থাকুন।
আমি এমন একটি দলের সাথে কাজ করি যা নিজেকে ডিফেক্টিভ স্টুডিও বলে calls আমরা বছরের পর বছর ধরে একই সমস্যা নিয়ে লড়াই করেছি এবং সম্প্রতি গেমোজেক্টগুলিকে একীভূত করতে সহায়তা করার জন্য আমি শেষ পর্যন্ত দিয়েছি এবং একটি এক্সটেনশন লিখতে শুরু করেছি।
মূলত পন্থাটি একটি উইন্ডোতে একটি পরিদর্শকের মতো ইন্টারফেস তৈরি করা হয় যা তুলনামূলকভাবে প্রতিটি গেমোজেক্ট, উপাদান এবং সম্পত্তি পাশাপাশি পাশাপাশি লাইন দেয় এবং মানগুলি (বা পুরো বস্তু) একপাশ থেকে অন্য দিকে অনুলিপি করতে বোতাম সরবরাহ করে। আপনি যদি SerializedProperty
শ্রেণীর সাথে পরিচিত হন তবে এখানে কাজটি বেশিরভাগ ক্ষেত্রেই করা হচ্ছে। আমরা মূলত একটি জিইউআই তৈরি করি যা ডান এবং বাম পাশের মধ্যে ফোল্ডআউট রাষ্ট্রকে সুসংগত করে এবং যেখানেই GameObject
বা একটি বা উল্লম্ব স্থান তৈরি করেComponent
কেবলমাত্র ডান বা বাম দিকে বিদ্যমান। একটি তুলনা ফাংশন প্রতিটি স্তরে সাম্যতা পরীক্ষা করে এবং সাম্যের অবস্থার উপর নির্ভর করে প্রতিটি লাইনের পটভূমিটিকে লাল বা সবুজ করে তোলে। যে সকল লাইন বাচ্চাদের মধ্যে পার্থক্য রয়েছে সেগুলিও লাল হয়ে যাবে এবং আমরা গাছটিকে পুনরুদ্ধার করে অনুসন্ধান করতে এবং সমস্ত বা বস্তুগুলির পৃথক করতে বা তাদের বাচ্চাদের মধ্যে পার্থক্য রাখতে একটি নিমফ বাটনও অন্তর্ভুক্ত করেছি।
পাশাপাশি, সেখানে একটি মুখোশ ক্ষেত্রের সেট রয়েছে যা আপনাকে তুলনার বাইরে কিছু উপাদান ধরণের ফিল্টার করতে দেয়। নাম, স্তর এবং ট্যাগের মতো গেম অবজেক্ট বৈশিষ্ট্যগুলিও তুলনা করা হয়। আমরা ব্যবহার করি SerializedObject
এবং এর বৈশিষ্ট্যগুলি SerializedProperty
লুপ করি gameObject
এবং সেগুলি যেমন ইন্সপেক্টরকে আঁকেন তেমনভাবে আঁকুন। এটি ধারাবাহিকতা নিশ্চিত করে, এবং কোড করা অনেক সহজ এক হেক!
একটি শেষ নিফটির বিবরণ হ'ল তুলনা প্রক্রিয়াটি (যখন বস্তুগুলি লোড করা হয় এবং যখনই পরিবর্তন আসে তখনই ট্রিগার) EditorWindow.Update
ফাংশন দ্বারা আপডেট হওয়া একটি অ্যাড-হক কর্টিনে চালিত হয় , যাতে আপনি যদি কোনও জটিল জটিল বস্তুর সাথে তুলনা করছেন, উইন্ডোটি সম্পাদকটিকে লকআপ করে না। শত বাচ্চাদের (বা হাজার!) সাথে বস্তুর তুলনা করার সময় এটি আবশ্যক ছিল। সব মিলিয়ে আমার বন্ধুটি বলতে পছন্দ করায় এটি একধরণের "লেগো প্রকল্প" ছিল তবে অবশ্যই একটি অমূল্য সরঞ্জাম যা তাত্ক্ষণিকভাবে আমাদের সহযোগিতার কর্মপ্রবাহের একটি অংশে পরিণত হয়েছিল।
টুল, ইউনিটি মার্জ করা হয় নথিভুক্ত সমন্বয়সাধন করা উইকি, যা একটি রোডম্যাপ এবং প্রতিক্রিয়া এবং সমস্যা প্রতিবেদন করার জন্য একটি ই-মেইল ঠিকানা অন্তর্ভুক্ত করেন। আপনি যদি সত্যিই কোনও জটিল একত্রীকরণের সাথে লড়াই করে যাচ্ছেন তবে এটিকে একটি শট দিন এবং আপনার মতামত আমাদের জানান! এছাড়াও, আমি এটিকে একটি ডিএলএল তৈরি করতে বিরক্ত করিনি, তাই উত্সটিতে ঘুরে দেখি নির্দ্বিধায়। অ্যাড-হক কর্টিন বাস্তবায়ন এবং SerializedProperty
ম্যানিপুলেশনগুলি, পাশাপাশি কয়েকটি জিইউআই কৌশলগুলি যা আমি শেষ করেছিলাম সেগুলি হ'ল আপনার সম্পাদক এক্সটেনশন টুলকিটের একটি দুর্দান্ত অংশ। ব্যবহারকারীরা যে পরিবর্তন / উন্নতি করতে পারেন তাতে আমি খুব আগ্রহী, সুতরাং দয়া করে যোগাযোগ করুন!
আপনার যদি এর জন্য তহবিল থাকে তবে ইউনিটির প্রো সংস্করণ সহ সম্পদ সার্ভারটি বেশ শালীন। আমি অতীতে এটি একটি বৃহত, বহু-ব্যক্তি প্রকল্পে ব্যবহার করেছি এবং এটি কাজটি করেছে। ভ্যানিলা সংস্করণ নিয়ন্ত্রণের জন্য, এটি আমাদের এটি প্রত্যাশা করে যা করেছিল।
আমি একটি ইউনিটি প্রকল্পের সাথে একটি এসভিএন সংগ্রহস্থল ব্যবহার করার চেষ্টা করেছি এবং এটি কিছুটা ঝামেলা হয়েছিল। যাইহোক, ধারণাটি কাজ করার আগে স্ক্র্যাপিং শেষ করেছি। ইউনিটি প্রচুর ব্যাকআপ ফাইল রাখে যেগুলি যদি সার্ভারে সিঙ্ক না করা হয় তবে কী হবে তা জানার জন্য আমি সময় নিতে চাইনি। আমি মনে করি, সামান্য জরিমানা সহ, এটি করণীয় হতে পারে তবে এটির সাথে ভালভাবে কাজ করার অভিজ্ঞতা আমার নেই।
ড্রপবক্সের ফ্রি বৈশিষ্ট্যগুলি ব্যবহার করে আমি একটি ছোট প্রকল্প করেছি। এটি আমাকে উদ্বিগ্ন করেছিল কিন্তু আমাদের কোনও সমস্যা হয়নি। এবং আমি মনে করি না যে এই প্রকল্পের জন্য আমাদের কোনও আসল সংস্করণ নিয়ন্ত্রণ সামগ্রীর প্রয়োজন শেষ হয়েছে যাতে আমি ফাইলগুলি কীভাবে ফেরানো বা মার্জ করতে হত সে সম্পর্কে বেশি কিছু বলতে পারি না।
ড্রপবক্স প্রতি ফাইল প্রতি সংস্করণ সমর্থন করে (প্রতি প্রতিশ্রুতি না দিয়ে) এবং ityক্যের সাথে দুর্দান্ত খেলায়। এটি প্রাথমিকভাবে নিখরচায় (2 গিগাবাইট) এবং এরপরে বেশ সস্তা (50 গিগের জন্য প্রায় 10 ডলার)। সংস্করণ ইতিহাসে অ্যাক্সেস পেতে আপনার প্যাকর্যাট অ্যাডোন প্রয়োজন।
এসভিএন, সিভিএস, জিআইটি ইত্যাদির মতো, আপনি যখন বিকাশের প্রতিটি মূল পর্যায়ে পৌঁছবেন তখন আপনি ট্যাগ ফোল্ডার তৈরি করেছেন তা নিশ্চিত করতে হবে (যেমন: সপ্তাহের শেষ, মাইলফলকের শেষ)। উল্লিখিত হিসাবে পৃথক, যদি আপনি না করেন তবে এই ধাপে ফিরে যাওয়া আরও শক্ত হবে , কারণ আপনাকে প্রতিটি ফাইল এককভাবে রিভার্ট করতে হবে। বিকাশকালে এটি মনে রাখবেন এবং সম্পদ সার্ভারের জন্য অর্থ প্রদান না করে আপনার একটি সহজ সময় থাকবে।