मेरे लिए JetBrains के राइडर को लंबे समय से एकता विकास के लिए सर्वश्रेष्ठ IDE के रूप में स्थापित किया गया है। हाल ही के राइडर 2023.1 रिलीज़ में, कई नई सुविधाएँ जोड़ी गईं जो डेवलपर्स के जीवन को आसान बनाती हैं। JetBrains ने एक बार फिर निराश नहीं किया है और बार को ऊंचा सेट करना जारी रखा है।
नया संस्करण USB केबल के माध्यम से Android उपकरणों पर चलने वाले गेम को डिबग करने की अनुमति देता है। सामान्य तौर पर, यह कनेक्टेड प्लेयर्स के लिए स्वचालित रूप से अस्थायी रन कॉन्फ़िगरेशन बनाकर डिबगिंग को सरल करता है, बाद के सत्रों को अनुकूलित करता है, और विभिन्न प्लेटफॉर्म पर आपकी टीम के साथ आसान बचत और साझा करने की अनुमति देता है। कुछ के लिए, एक महत्वपूर्ण विशेषता आईडीई के भीतर ही स्थानीय प्रलेखन के लिए समर्थन होगा।
अंतत: यूआई टूलकिट की गहराई में जाने और उसका अन्वेषण करने का भी समय आ गया है।
राइडर ने यूआई टूलकिट के आधार पर यूनिटी एडिटर के लिए यूआई एक्सटेंशन के लिए तीन टेम्प्लेट जोड़े हैं।
राइडर 2023.1 में [SerializeReference] विशेषता के साथ क्षेत्रों की पहचान करने में सुधार शामिल हैं, यूनिटी एनिमेशन में C# उपयोग का पता लगाना (जो बुरी तरह से छूट गया था), और [शीर्षलेख] विशेषताओं को स्वरूपित करना।
सामान्य तौर पर, C# के साथ काम करने के लिए कई संवर्द्धन जोड़े गए हैं। और आखिरी लेकिन कम से कम, सबसे प्यारा हिस्सा: जेटब्रेन से लंबे समय से प्रतीक्षित डॉट्स समर्थन।
खैर, आइए संक्षेप में समीक्षा करें कि यह सब क्या है और क्या यह राइडर को नवीनतम संस्करण में अपग्रेड करने के लायक है। यदि आप अभी तक इस आईडीई का उपयोग नहीं कर रहे हैं, तो यह लेख आपके लिए भी उपयोगी होगा।
कभी-कभी, एकता संपादक में एक गेम पूरी तरह से ठीक व्यवहार करता है, लेकिन डिवाइस पर चीजें इतनी आसानी से नहीं चलतीं। अब राइडर आपको USB के माध्यम से डिवाइस पर सीधे कोड डिबग करने की अनुमति देता है। अच्छा, यह प्रेरक है।
याद रखें, इस सुविधा के काम करने के लिए, बिल्ड को डेवलपमेंट बिल्ड और स्क्रिप्ट डिबगिंग विकल्पों के साथ संकलित किया जाना चाहिए।
मैं आपको याद दिलाना चाहता हूं कि डिवाइस को भी ठीक से सेट किया जाना चाहिए। सबसे पहले, डिवाइस पर डेवलपर मोड सक्षम होना चाहिए।
"बिल्ड नंबर" आइटम को खोजने का एक और सरल तरीका यह है कि इसे सेटिंग में खोजा जाए।
अगला, आपको जो करने की आवश्यकता है वह दिखाई देने वाले "डेवलपर विकल्प" में "USB डीबगिंग" को सक्षम करना है।
अभी दो-चार कदम और बाकी हैं। डिवाइस पर अपना गेम लॉन्च करें, और राइडर के मुख्य मेनू में, "रन" पर क्लिक करें और फिर "एकता प्रक्रिया से जुड़ें ..." पर क्लिक करें। खुली हुई विंडो में, अपने एप्लिकेशन के साथ Android डिवाइस का चयन करें।
सभी कुछ तैयार है! ब्रेकप्वाइंट सेट करें और अपने गेम को सीधे डिवाइस से डिबग करें! इस शक्तिशाली डिबगिंग टूल का लाभ उठाने और अपनी गेम विकास प्रक्रिया को बढ़ाने में संकोच न करें।
जैसे ही आप पहली बार डिबगिंग शुरू करते हैं, राइडर स्वचालित रूप से Android प्लेयर के लिए एक अस्थायी रन कॉन्फ़िगरेशन बना देगा। यदि आप रन कॉन्फ़िगरेशन को भविष्य में उपयोग के लिए सहेजना चाहते हैं, तो आप ऐसा कर सकते हैं और इसे अपनी टीम के साथ साझा कर सकते हैं।
बेशक, हम सभी पुराने, अच्छे और एक ही समय में बहुत अनम्य IMGUI के अभ्यस्त हैं। हालाँकि, गेम के लिए UI बनाने के हमारे अनुभव को बेहतर बनाने के लिए यूनिटी टीम लंबे समय से एक नए UI टूलकिट पैकेज पर काम कर रही है। एकता 2022.2 से शुरू होकर, संपादक में यूआई बनाते समय एक नए दृष्टिकोण का उपयोग करने की सिफारिश की जाती है।
यूआई टूलकिट एक अलग गहन विषय है। मैं केवल इतना कहूंगा कि नया दृष्टिकोण यूआई बनाने के लिए अधिक सुविधाजनक और कुछ हद तक अधिक सामान्य दृष्टिकोण प्रदान करता है। यदि आपके पास HTML और CSS का अनुभव है, तो आपके लिए अनुकूलन करना बहुत आसान होगा। लेकिन मैं दूसरों को भी सलाह देता हूं कि यूआई टूलकिट में महारत हासिल करने में देर न करें।
अब राइडर, यूनिटी 2022.2 परियोजनाओं या पुराने के लिए, डिफ़ॉल्ट रूप से नए टेम्प्लेट का उपयोग प्रदान करता है। आइए उनमें से एक को आजमाएं। इसके लिए, सबसे पहले, हम गेम में आइटम्स का वर्णन करने के लिए एक सरल ScriptableObject बनाएंगे।
[CreateAssetMenu(fileName = "GameItem", menuName = "Game Item", order = 0)] public class GameItem : ScriptableObject { public string itemName; public int weight; public int price; }
चलिए इस ScriptableObject के लिए एक कस्टम एडिटर बनाते हैं। ऐसा करने के लिए, राइडर में एडिटर फोल्डर पर राइट-क्लिक करें, फिर यूनिटी स्क्रिप्ट जोड़ें और चुनें।
खुली हुई विंडो में, कस्टम संपादक का चयन करें। आइए हमारे संपादक का नाम GameItemEditor रखें।
CustomEditor विशेषता में, इंगित करें कि बनाया गया संपादक GameItem वर्ग के लिए अभिप्रेत है।
using UnityEditor; using UnityEngine.UIElements; [CustomEditor(typeof(GameItem))] public class GameItemEditor : Editor { public override VisualElement CreateInspectorGUI() { return base.CreateInspectorGUI(); } }
ओपन विंडो-> यूआई टूलकिट-> यूआई बिल्डर। व्यूपोर्ट में, वर्तमान UI दस्तावेज़ को सहेजें और इसे GameItem.uxml नाम दें। लाइब्रेरी विंडो से, तीन फ़ील्ड जोड़ें जो हमारे GameItem वर्ग फ़ील्ड के अनुरूप हों और उन्हें उपयुक्त नाम दें।
यूआई टूलकिट के साथ काम करने के कई स्पष्ट फायदे हैं। यूआई बिल्डर के साथ-साथ आईजीएमयूआई के समान प्रोग्रामिंग के माध्यम से बॉक्स के ठीक बाहर उपलब्ध यूएक्सएमएल दस्तावेजों को ग्राफिक रूप से संपादित करना संभव है। अब, यूआई प्रदर्शन शैली को यूएसएस में सेट किया जा सकता है, अनिवार्य रूप से सीएसएस के समान, और फिर परियोजना में पुन: उपयोग किया जा सकता है। ओह, यह कैसे गायब हो गया। स्वचालित पूर्ववत समर्थन भी मौजूद है।
एक अन्य महत्वपूर्ण तथ्य स्वचालित डेटा बाइंडिंग है। आइए बाइंडिंग पाथ फ़ील्ड में GameItem वर्ग फ़ील्ड के नाम इंगित करें।
व्यूपोर्ट विंडो में फ़ाइल-> इस रूप में सहेजें… मेनू के माध्यम से दस्तावेज़ को सहेजना न भूलें। Ctrl-S / Cmd-S को बचाने के लिए हॉटकीज़ यहाँ आपकी मदद नहीं करेंगी।
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False"> <ui:TextField picking-mode="Ignore" label="Name" name="Name" binding-path="itemName" /> <ui:IntegerField label="Weight" value="0" name="Weight" binding-path="weight" readonly="false" /> <ui:IntegerField label="Price" value="0" name="Price" binding-path="price" focusable="true" /> </ui:UXML>
अब GameItemEditor लिखना समाप्त करते हैं ताकि यह सीधे UXML दस्तावेज़ से इंस्पेक्टर बना सके।
[CustomEditor(typeof(GameItem))] public class GameItemEditor : Editor { public VisualTreeAsset treeAsset; public override VisualElement CreateInspectorGUI() { var inspector = new VisualElement(); treeAsset.CloneTree(inspector); return inspector; } }
प्रोजेक्ट विंडो में GameItemEditor स्क्रिप्ट का चयन करें और ट्री एसेट फ़ील्ड के लिए बनाए गए UI दस्तावेज़ GameItem.uxml को बस वहां खींचकर निर्दिष्ट करें।
GameItem वर्ग के लिए हमारा कस्टम संपादक तैयार है। आप UI दस्तावेज़ के साथ थोड़ा प्रयोग कर सकते हैं और देख सकते हैं कि इसके परिवर्तन निरीक्षक में प्रदर्शन को कैसे प्रभावित करेंगे।
खैर, नए राइडर 2023.1 की रिलीज़ यूआई टूलकिट के अध्ययन में तल्लीन करने और इसके उपयोग के सभी लाभों को प्राप्त करने का एक अच्छा कारण है।
यूनिटी का डेटा-ओरिएंटेड टेक्नोलॉजी स्टैक, या केवल डॉट्स, एक ऐसी परियोजना है जो यूनिटी टीम द्वारा कई वर्षों से विकसित की जा रही है। बिना किसी अद्यतन के लगभग एक वर्ष के बाद, DOTS पैकेज प्रायोगिक स्थिति से पूर्व-रिलीज़ में स्थानांतरित हो गए हैं, संस्करण 1.0.0 प्राप्त कर रहे हैं। इस लेख को लिखने के समय, यह 1.0.0-पूर्व.65 है। और 2023 में रिलीज़ का वादा है।
विकास के लंबे समय और DOTS के बारे में कुछ संदेहों के बावजूद, जिन्होंने पहले ही रिलीज की प्रतीक्षा करना छोड़ दिया था, नया स्टैक अभी भी अपनी क्षमताओं और प्रदर्शन से चकित करता है।
डेटा-उन्मुख डिज़ाइन, या आम तौर पर बोलना, एंटिटी कंपोनेंट सिस्टम (ECS), गेम प्रोग्रामिंग आर्किटेक्चर के लिए एक पूरी तरह से अलग दृष्टिकोण प्रदान करता है। परिचित ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग पैटर्न के विपरीत, यहाँ ध्यान डेटा के पृथक्करण और उसके प्रसंस्करण पर है। ऐसी वास्तुकला में, समान डेटा आमतौर पर मेमोरी में एक दूसरे के करीब स्थित होता है और सिस्टम को इसे अविश्वसनीय गति से संसाधित करने की अनुमति देता है, खासकर अगर यह बहु-थ्रेडेड मोड में किया जा सकता है।
डॉट्स पर काफी काम किया गया है, जिसमें नेटिव मेमोरी मैनेजमेंट मैकेनिज्म जोड़ा गया है ताकि उन्हें सीधे सी# से आसानी से इस्तेमाल किया जा सके।
DOTS 1.0.0 के जारी होने के साथ, अनुप्रयोग विकास के कई दृष्टिकोण बदल गए हैं। मेरी राय में, वे अधिक सुविधाजनक और सहज हो गए हैं।
हालांकि अभी भी अच्छे दस्तावेज़ीकरण की कमी है, DOTS की अविश्वसनीय रूप से उत्पादक दुनिया में गोता लगाने के लिए पर्याप्त है और ECS और मल्टी-थ्रेडेड डेटा प्रोसेसिंग के लिए अपने दिमाग को फिर से तैयार करें।
मैंने पहले एकता डॉट्स 1.0 के साथ ग्रेविटी सिमुलेशन का उपयोग करके गुरुत्वाकर्षण सिमुलेशन पर एक लेख जारी किया था। आप चाहें तो इस स्टैक के अध्ययन के लिए कई अन्य शैक्षिक सामग्री भी पा सकते हैं। राइडर की नई क्षमताओं का परीक्षण करने के लिए, मैंने अपना पुराना वेव प्रोपेगेशन प्रोजेक्ट खोला, जो डॉट्स के पिछले संस्करण पर लिखा गया था।
राइटिंग कोड की बारीकियों के कारण राइडर या विज़ुअल स्टूडियो द्वारा जारी की गई कई चेतावनियाँ मुझे हमेशा परेशान करती थीं। अब कोड साफ और सुखद लग रहा है।
आखिरकार! मैं इसके लिए कैसे इंतजार कर रहा हूं! राइडर आधिकारिक तौर पर डॉट्स का समर्थन करता है, जो निस्संदेह इसे एकता विकास के लिए नंबर एक आईडीई बनाता है। अब राइडर सही मायने में समझता है कि क्या सही है और क्या नहीं।
उदाहरण के लिए, कोड के इस टुकड़े में,
public partial struct TransformingSystem : ISystem { [BurstCompile] public void OnUpdate(ref SystemState state) { var field = SystemAPI.GetSingleton<Field>(); var job = new TransformingJon { HeightScale = field.CellHeightScale, DeltaTime = SystemAPI.Time.fixedDeltaTime, FieldViscosity = field.Viscosity, MinHeight = field.MinHeight }; job.ScheduleParallel(); } }
राइडर ने सुझाव दिया कि अब, सिंगलटन फील्ड तक सही पहुंच के लिए, ऑनक्रिएट () को विधि स्थिति के माध्यम से अपेक्षा निर्धारित करने की आवश्यकता है।
public partial struct TransformingSystem : ISystem { public void OnCreate(ref SystemState state) { state.RequireForUpdate<Field>(); } [BurstCompile] public void OnUpdate(ref SystemState state) { var field = SystemAPI.GetSingleton<Field>(); var job = new TransformingJon { HeightScale = field.CellHeightScale, DeltaTime = SystemAPI.Time.fixedDeltaTime, FieldViscosity = field.Viscosity, MinHeight = field.MinHeight }; job.ScheduleParallel(); } }
MonoBehaviors के लिए बेकर्स बनाने के लिए टेम्प्लेट दिखाई दिए हैं, और आपको एक नया घटक बनाने या किसी मौजूदा में फ़ील्ड जोड़ने की पेशकश की जाएगी।
बेशक, अभी तक सब कुछ सही नहीं है। बेकर कोड जनरेट करते समय, एक पुराने टेम्पलेट का उपयोग किया जाता है। मुझे यह कोड मिला।
public class FieldAuthoring : MonoBehaviour { public GameObject CellPrefab; public Field Field; public Impulse Impulse; public class FieldAuthoringBaker : Baker<FieldAuthoring> { public override void Bake(FieldAuthoring authoring) { AddComponent(new FieldComponentData { CellPrefab = GetEntity(authoring.CellPrefab), Field = authoring.Field, Impulse = authoring.Impulse }); } } } public struct FieldComponentData : IComponentData { public Entity CellPrefab; public Field Field; public Impulse Impulse; }
यहां, पहले से ही पुराने तरीकों GetEntity() और AddComponent() का उपयोग किया जाता है। इसके बजाय, घटक जोड़ अब इस तरह से किया जाना चाहिए।
public override void Bake(FieldAuthoring authoring) { var entity = GetEntity(TransformUsageFlags.Dynamic); AddComponent(entity, new FieldComponentData { CellPrefab = GetEntity(authoring.CellPrefab, TransformUsageFlags.Dynamic), Field = authoring.Field, Impulse = authoring.Impulse }); }
बेशक, आप स्वयं टेम्प्लेट बदल सकते हैं। लेकिन मुझे लगता है कि जेटब्रेन से समाधान आने में देर नहीं लगेगी। घटक के लिए एक बेकर के साथ एक अधिकृत मोनोबिहेवियर बनाने की भी संभावना है। उनके ब्लॉग में, आप पहले से ही एक लेख पा सकते हैं, जो डॉट्स के साथ काम करते समय नई क्षमताओं का व्यापक रूप से वर्णन करता है, इसलिए मुझे यहां इसका वर्णन करने का कोई मतलब नहीं दिखता।
राइडर 2023.1 रिलीज एकता डेवलपर्स के लिए नई सुविधाओं और सुधारों का खजाना लाता है, एकता विकास के लिए सर्वश्रेष्ठ आईडीई के रूप में अपनी स्थिति को मजबूत करता है। Android उपकरणों के लिए उन्नत डिबगिंग के साथ, UI टूलकिट के लिए नए टेम्प्लेट, लंबे समय से प्रतीक्षित DOTS समर्थन, और यूनिटी रजिस्ट्री पैकेजों के लिए ऑनलाइन दस्तावेज़ों तक त्वरित पहुँच और स्थानीयकृत API दस्तावेज़ीकरण जैसी अतिरिक्त सुविधाएँ, JetBrains खेल विकास टूल के लिए बार उठाना जारी रखता है। ये सुविधाएँ न केवल विकास प्रक्रिया को सरल बनाती हैं बल्कि डेवलपर्स को बेहतर, अधिक कुशल गेम बनाने के लिए सशक्त बनाती हैं।
इसके अलावा, राइडर 2023.1 कई अन्य अपडेट प्रदान करता है, जैसे कि कोड में क्रमबद्ध क्षेत्रों का अधिक सटीक पता लगाना, यूनिटी एनिमेशन में C# उपयोगों को खोजने के लिए बेहतर समर्थन, और एक अलग लाइन पर [हेडर] विशेषताओं को रखने के लिए फ़ॉर्मेटिंग इंजन के लिए अत्यधिक अनुरोधित अपडेट। ये संवर्द्धन अधिक सुव्यवस्थित और कुशल विकास अनुभव में योगदान करते हैं।
चाहे आप एक अनुभवी यूनिटी डेवलपर हों या अभी शुरुआत कर रहे हों, राइडर 2023.1 रिलीज़ एक्सप्लोर करने लायक है। नई सुविधाएँ आवश्यकताओं की एक विस्तृत श्रृंखला को पूरा करती हैं और विकास प्रक्रिया को कारगर बनाने में मदद करती हैं। यदि आपने पहले कभी राइडर का उपयोग नहीं किया है, तो यह रिलीज़ इसकी शक्तिशाली विशेषताओं का प्रत्यक्ष अनुभव करने का एक उत्कृष्ट अवसर प्रदान करती है। उन लोगों के लिए जो पहले से ही राइडर का उपयोग कर रहे हैं, नवीनतम संस्करण में अपग्रेड करने से निस्संदेह आपके गेम डेवलपमेंट वर्कफ़्लो में वृद्धि होगी।
राइडर 2023.1 के साथ यूनिटी विकास में नवीनतम प्रगति को अपनाएं और अपने गेम प्रोजेक्ट्स को नई ऊंचाइयों पर ले जाएं। अपने विकास के अनुभव को बेहतर बनाने और अधिक आकर्षक, उच्च प्रदर्शन वाले गेम बनाने का मौका न चूकें।