यूनिटी में शिकार का खेल बनाना

इस ट्यूटोरियल में, हम Unity में एक बुनियादी शिकार गेम बनाने की प्रक्रिया से गुजरेंगे। इस गेम में खिलाड़ी की हरकत, जानवरों की AI, शूटिंग मैकेनिक्स और स्कोरिंग सिस्टम जैसे तत्व शामिल होंगे। हम निम्नलिखित को कवर करेंगे:

  • परियोजना और वातावरण की स्थापना
  • प्लेयर नियंत्रण बनाना
  • पशु कृत्रिम बुद्धि का क्रियान्वयन
  • शूटिंग यांत्रिकी जोड़ना
  • स्कोरिंग प्रणाली स्थापित करना

परियोजना की स्थापना

आइए एक नया Unity प्रोजेक्ट स्थापित करके और वातावरण बनाकर शुरुआत करें।

प्रोजेक्ट बनाना

  1. Unity खोलें और एक नया 3D प्रोजेक्ट बनाएं।
  2. अपने प्रोजेक्ट का नाम HuntingGame रखें और Create पर क्लिक करें।
  3. प्रोजेक्ट विंडो में, अपनी संपत्तियों को व्यवस्थित करने के लिए Scripts, Prefabs, और Materials नामक फ़ोल्डर बनाएं।

वातावरण की स्थापना

  1. पदानुक्रम में, राइट-क्लिक करें और भूभाग बनाने के लिए 3D ऑब्जेक्ट > भूभाग का चयन करें।
  2. टेरेन टूल्स का उपयोग करके बनावट को चित्रित करने, पेड़ जोड़ने, और घास या अन्य विवरण रखने के लिए इलाके को अनुकूलित करें।
  3. वातावरण को अधिक यथार्थवादी बनाने के लिए चट्टानों और पेड़ों जैसी कुछ 3D वस्तुएं जोड़ें।

प्लेयर नियंत्रण बनाना

इसके बाद, हम खिलाड़ी चरित्र का निर्माण करेंगे और भौतिकी-आधारित गति नियंत्रण को क्रियान्वित करेंगे।

खिलाड़ी चरित्र

  1. पदानुक्रम में, राइट-क्लिक करें और खिलाड़ी चरित्र बनाने के लिए 3D ऑब्जेक्ट > कैप्सूल का चयन करें।
  2. कैप्सूल का नाम बदलकर Player रखें और इसे भूभाग के ऊपर रखें।
  3. भौतिकी-आधारित गति के लिए Player ऑब्जेक्ट में Rigidbody घटक जोड़ें।
  4. खिलाड़ी के दृष्टिकोण के रूप में कार्य करने के लिए Player ऑब्जेक्ट के चाइल्ड के रूप में Camera जोड़ें।

खिलाड़ी मूवमेंट स्क्रिप्ट

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float moveSpeed = 5f;
    public float rotationSpeed = 100f;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent();
        rb.freezeRotation = true;
    }

    void FixedUpdate()
    {
        float moveHorizontal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis("Vertical");

        Vector3 movement = transform.forward * moveVertical * moveSpeed * Time.deltaTime;
        rb.MovePosition(rb.position + movement);

        float rotation = Input.GetAxis("Mouse X") * rotationSpeed * Time.deltaTime;
        Quaternion turnRotation = Quaternion.Euler(0f, rotation, 0f);
        rb.MoveRotation(rb.rotation * turnRotation);
    }
}
  1. Scripts फ़ोल्डर में PlayerMovement.cs नाम से एक नई C# स्क्रिप्ट बनाएँ।
  2. PlayerMovement स्क्रिप्ट को Player ऑब्जेक्ट से जोड़ें।

पशु कृत्रिम बुद्धि (AI) का क्रियान्वयन

हम पर्यावरण में घूमने और खिलाड़ी पर प्रतिक्रिया करने के लिए सरल पशु एआई बनाएंगे।

पशु प्रीफ़ैब

  1. जानवर (जैसे, हिरण) के लिए 3D मॉडल आयात करें या बनाएं।
  2. मॉडल को दृश्य में खींचें और उसे भूभाग पर रखें।
  3. पदानुक्रम में मॉडल पर राइट-क्लिक करें और पैरेंट ऑब्जेक्ट बनाने के लिए Create Empty चुनें। इसे Deer नाम दें।
  4. 3D मॉडल को Deer ऑब्जेक्ट में खींचें और इसके परिवर्तन को रीसेट करें।
  5. Deer ऑब्जेक्ट को Prefabs फ़ोल्डर में खींचकर प्रीफ़ैब के रूप में सहेजें।

पशु एआई स्क्रिप्ट

using UnityEngine;
using UnityEngine.AI;

public class AnimalAI : MonoBehaviour
{
    public Transform[] waypoints;
    private NavMeshAgent agent;
    private int currentWaypoint = 0;

    void Start()
    {
        agent = GetComponent();
        agent.SetDestination(waypoints[currentWaypoint].position);
    }

    void Update()
    {
        if (agent.remainingDistance < agent.stoppingDistance)
        {
            currentWaypoint = (currentWaypoint + 1) % waypoints.Length;
            agent.SetDestination(waypoints[currentWaypoint].position);
        }
    }
}
  1. Scripts फ़ोल्डर में AnimalAI.cs नाम से एक नई C# स्क्रिप्ट बनाएँ।
  2. AnimalAI स्क्रिप्ट को Deer प्रीफ़ैब से जोड़ें।
  3. Deer प्रीफ़ैब में NavMeshAgent घटक जोड़ें।
  4. खाली GameObjects बनाकर और उन्हें इच्छानुसार स्थान देकर दृश्य में वेपॉइंट सेट करें। इन वेपॉइंट को AnimalAI स्क्रिप्ट में waypoints सरणी में असाइन करें।

शूटिंग मैकेनिक्स जोड़ना

हम खिलाड़ियों को जानवरों पर गोली चलाने की क्षमता प्रदान करेंगे।

शूटिंग स्क्रिप्ट

using UnityEngine;

public class PlayerShooting : MonoBehaviour
{
    public Camera playerCamera;
    public float range = 100f;
    public GameObject impactEffect;

    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            Shoot();
        }
    }

    void Shoot()
    {
        RaycastHit hit;
        if (Physics.Raycast(playerCamera.transform.position, playerCamera.transform.forward, out hit, range))
        {
            AnimalAI animal = hit.transform.GetComponent();
            if (animal != null)
            {
                Destroy(hit.transform.gameObject);
            }

            GameObject impactGO = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
            Destroy(impactGO, 2f);
        }
    }
}
  1. Scripts फ़ोल्डर में PlayerShooting.cs नाम से एक नई C# स्क्रिप्ट बनाएँ।
  2. PlayerShooting स्क्रिप्ट को Player ऑब्जेक्ट से जोड़ें।
  3. एक प्रभाव प्रभाव (जैसे, एक कण प्रणाली) बनाएं और इसे स्क्रिप्ट में impactEffect फ़ील्ड में असाइन करें।

स्कोरिंग सिस्टम स्थापित करना

हम खिलाड़ियों के सफल शिकारों पर नज़र रखने के लिए एक सरल स्कोरिंग प्रणाली जोड़ेंगे।

स्कोर प्रबंधक स्क्रिप्ट

using UnityEngine;
using UnityEngine.UI;

public class ScoreManager : MonoBehaviour
{
    public static int score = 0;
    public Text scoreText;

    void Update()
    {
        scoreText.text = "Score: " + score.ToString();
    }

    public static void AddScore(int points)
    {
        score += points;
    }
}
  1. Scripts फ़ोल्डर में ScoreManager.cs नाम से एक नई C# स्क्रिप्ट बनाएँ।
  2. ScoreManager स्क्रिप्ट को GameManager नामक एक नए रिक्त GameObject से संलग्न करें।
  3. स्कोर प्रदर्शित करने के लिए एक UI टेक्स्ट तत्व बनाएं और इसे ScoreManager स्क्रिप्ट में scoreText फ़ील्ड में असाइन करें।

ट्रैक स्कोर के लिए शूटिंग स्क्रिप्ट को अपडेट करना

void Shoot()
{
    RaycastHit hit;
    if (Physics.Raycast(playerCamera.transform.position, playerCamera.transform.forward, out hit, range))
    {
        AnimalAI animal = hit.transform.GetComponent();
        if (animal != null)
        {
            Destroy(hit.transform.gameObject);
            ScoreManager.AddScore(10);
        }

        GameObject impactGO = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
        Destroy(impactGO, 2f);
    }
}

निष्कर्ष

हमने Unity में एक बुनियादी शिकार खेल बनाया है। हमने प्रोजेक्ट और पर्यावरण की स्थापना की, भौतिकी-आधारित आंदोलन के साथ खिलाड़ी नियंत्रण बनाए, पशु एआई को लागू किया, शूटिंग यांत्रिकी को जोड़ा, और एक स्कोरिंग सिस्टम स्थापित किया। इस आधारभूत ज्ञान को आपके शिकार खेल को बढ़ाने के लिए अधिक जटिल व्यवहार, अतिरिक्त जानवर और परिष्कृत खेल यांत्रिकी को शामिल करने के लिए विस्तारित किया जा सकता है।

लिंक
Unity 6