नेवमेश का उपयोग करके यूनिटी में एनपीसी को खिलाड़ी का पीछा करने के लिए कैसे प्रेरित करें
इस ट्यूटोरियल में, हम यूनिटी के NavMesh सिस्टम का उपयोग करके एक NPC बनाएंगे जो प्लेयर का पीछा करता है। NavMesh कुशल पथ खोज और बाधा से बचाव प्रदान करता है, जो इसे 3D वातावरण में AI व्यवहार के लिए आदर्श बनाता है।
चरण 1: दृश्य सेट करना
NavMesh को क्रियान्वित करने से पहले, हमें एक उचित दृश्य सेटअप की आवश्यकता है:
- Unity में एक नया 3D प्रोजेक्ट बनाएं।
- जमीन के रूप में काम करने के लिए एक Plane जोड़ें।
- खिलाड़ी को दर्शाने के लिए Cube या कोई भी 3D मॉडल जोड़ें। इसे Player नाम दें।
- NPC को दर्शाने के लिए एक और Cube या 3D मॉडल जोड़ें। इसे NPC नाम दें।
- खिलाड़ी और एनपीसी को विमान पर अलग-अलग स्थानों पर रखें।
चरण 2: नेवमेश को बेक करना
यूनिटी के नेवमेश सिस्टम का उपयोग करने के लिए, हमें नेविगेशन मेश को बेक करना होगा:
- पदानुक्रम में ग्राउंड प्लेन का चयन करें।
- इंस्पेक्टर में, Add Component पर क्लिक करें और NavMeshSurface जोड़ें।
- NavMeshSurface घटक में, सुनिश्चित करें कि प्लेन को चलने योग्य सतह के रूप में चिह्नित किया गया है।
- NavMesh उत्पन्न करने के लिए NavMeshSurface घटक में Bake बटन पर क्लिक करें।
- वैकल्पिक: यदि आपके पास बाधाएं हैं (जैसे, दीवारें), तो सुनिश्चित करें कि उनमें NPC की गति को अवरुद्ध करने के लिए NavMeshObstacle घटक हों।
चरण 3: NavMeshAgent जोड़ना
अब, हम NPC को यूनिटी की पथ-खोज का उपयोग करने के लिए तैयार करेंगे:
- पदानुक्रम में NPC का चयन करें.
- इंस्पेक्टर में, Add Component पर क्लिक करें और NavMeshAgent जोड़ें।
- आवश्यकतानुसार NavMeshAgent गुणों को समायोजित करें, जैसे गति, त्वरण और रुकने की दूरी।
चरण 4: चेस स्क्रिप्ट लिखना
इसके बाद, हम NPC को खिलाड़ी का पीछा करने के लिए एक स्क्रिप्ट बनाएंगे:
- प्रोजेक्ट पैनल में राइट-क्लिक करें और Create > C# Script चुनें। इसे NPCChase नाम दें।
- स्क्रिप्ट को अपने कोड संपादक में खोलने के लिए उस पर डबल-क्लिक करें।
- डिफ़ॉल्ट कोड को निम्नलिखित से प्रतिस्थापित करें:
using UnityEngine;
using UnityEngine.AI;
public class NPCChase : MonoBehaviour
{
public Transform player; // Reference to the player's position
private NavMeshAgent agent; // Reference to the NavMeshAgent
void Start()
{
// Get the NavMeshAgent component
agent = GetComponent<NavMeshAgent>();
}
void Update()
{
if (player != null)
{
// Set the agent's destination to the player's position
agent.SetDestination(player.position);
}
}
}
चरण 5: स्क्रिप्ट और प्लेयर संदर्भ निर्दिष्ट करना
अंत में, हम स्क्रिप्ट असाइन करेंगे और प्लेयर संदर्भ सेट अप करेंगे:
- पदानुक्रम में NPC का चयन करें.
- NPCChase स्क्रिप्ट को NPC पर खींचें और छोड़ें।
- इंस्पेक्टर में, स्क्रिप्ट में Player फ़ील्ड का पता लगाएं।
- प्लेयर गेमऑब्जेक्ट को पदानुक्रम से प्लेयर फ़ील्ड में खींचें।
चरण 6: दृश्य का परीक्षण
अपने सेटअप का परीक्षण करने के लिए:
- Unity संपादक में Play बटन दबाएँ।
- प्लेयर को इधर-उधर घुमाएँ (उदाहरण के लिए, कीबोर्ड या कंट्रोलर इनपुट का उपयोग करके)।
- एनपीसी को गतिशील रूप से खिलाड़ी का रास्ता खोजते और उसका पीछा करते हुए देखें, जहां भी संभव हो बाधाओं से बचते हुए।
वैकल्पिक: व्यवहार को अनुकूलित करना
आप अपने NPC के व्यवहार को और अधिक परिष्कृत कर सकते हैं:
- रुकने की दूरी: NPC को एक निश्चित सीमा पर रोकने के लिए NavMeshAgent की रुकने की दूरी को समायोजित करें।
- बाधा परिहार: सुनिश्चित करें कि बाधाओं में सटीक परिहार के लिए NavMeshObstacle घटक मौजूद हों।
- एनिमेशन: गति के आधार पर एनिमेशन ट्रिगर करके एनपीसी आंदोलन को अधिक यथार्थवादी बनाने के लिए एनिमेशन का उपयोग करें।
निष्कर्ष
हमने एक NPC बनाया है जो यूनिटी के नेवमेश सिस्टम का उपयोग करके गतिशील रूप से खिलाड़ी का पीछा करता है। यह दृष्टिकोण मजबूत है और इसे अधिक जटिल AI व्यवहारों के लिए आसानी से विस्तारित किया जा सकता है। अपने गेम की ज़रूरतों के हिसाब से NPC के पथ-निर्धारण को अनुकूलित करने के लिए अलग-अलग सेटिंग्स के साथ प्रयोग करें।