एकता के लिए 2डी हाथापाई हमला ट्यूटोरियल

Unity इंजन 2डी और 3डी दोनों गेम बनाने के लिए एक व्यापक मंच प्रदान करता है। कई एक्शन गेम्स में मूलभूत तत्वों में से एक हाथापाई हमला है। 2डी वातावरण में, इस तरह के हमले में अक्सर एक पात्र हथियार घुमाता है या मुक्का मारता है, और इसे Unity एनिमेशन, भौतिकी और स्क्रिप्टिंग टूल के संयोजन का उपयोग करके पूरा किया जा सकता है।

आवश्यक शर्तें

  • Unity इंजन स्थापित और सेटअप।
  • Unity इंटरफ़ेस और 2D स्पेस के साथ बुनियादी परिचय।

1. प्रोजेक्ट और दृश्य की स्थापना

  • एक नया 2D Unity प्रोजेक्ट बनाएं (यदि अभी तक नहीं बनाया है)।
  • कैरेक्टर स्प्राइट आयात करें या बनाएं। इसे दृश्य में रखें.

2. मेली अटैक एनीमेशन की स्थापना

  • प्रोजेक्ट विंडो में, राइट-क्लिक करें और "Animator Controller" बनाएं। इसे "CharacterAnimator" नाम दें.
  • चरित्र का चयन करके और एनिमेटर को "Animator" घटक पर खींचकर इस एनिमेटर को चरित्र में निर्दिष्ट करें।
  • एनिमेशन विंडो खोलें. चयनित चरित्र के साथ, "MeleeAttack" नामक एक नया एनीमेशन बनाएं।
  • सरलता के लिए, मान लें कि यह आक्रमण एक त्वरित प्रहार है। इस क्रिया को अनुकरण करने के लिए स्प्राइट को चेतन करें।

3. अटैक हिटबॉक्स बनाना

  • चरित्र में चाइल्ड के रूप में एक खाली GameObject जोड़ें। यह हमले के लिए हिटबॉक्स की तरह काम करेगा.
  • खाली गेमऑब्जेक्ट में a "Box Collider 2D" संलग्न करें। इसके आकार और स्थिति को इस प्रकार समायोजित करें कि मुक्का मारने के दौरान पात्र कहाँ टकराएगा।
  • इसके "Active" बॉक्स को अनचेक करके हिटबॉक्स को निष्क्रिय करें। यह सुनिश्चित करता है कि यह केवल हमले के एनीमेशन के दौरान ही सक्रिय हो।

4. हमले के तर्क की स्क्रिप्टिंग

  • एक नई स्क्रिप्ट बनाएं, इसे "MeleeAttack" नाम दें, फिर नीचे दिए गए कोड को इसके अंदर पेस्ट करें:

'MeleeAttack.cs'

using UnityEngine;

public class MeleeAttack : MonoBehaviour
{
    private Animator animator;
    private BoxCollider2D hitbox;

    private void Start()
    {
        animator = GetComponent<Animator>();
        hitbox = transform.Find("HitboxGameObjectName").GetComponent<BoxCollider2D>();
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space)) // Attack on Space key press.
        {
            animator.SetTrigger("MeleeAttack");
            Invoke("ActivateHitbox", 0.2f); // Activate hitbox after 0.2 seconds.
            Invoke("DeactivateHitbox", 0.4f); // Deactivate hitbox after 0.4 seconds.
        }
    }

    void ActivateHitbox()
    {
        hitbox.gameObject.SetActive(true);
    }

    void DeactivateHitbox()
    {
        hitbox.gameObject.SetActive(false);
    }
}
  • "MeleeAttack" स्क्रिप्ट को मुख्य पात्र से जोड़ें।
  • एनीमेशन के आधार पर हिटबॉक्स सक्रियण और निष्क्रियकरण समय को समायोजित करें।
  • हिटबॉक्स कोलाइडर को हिटबॉक्स वेरिएबल पर असाइन करें।

5. टकराव से निपटना

  • दुश्मन गेम ऑब्जेक्ट के टैग को "Enemy" में बदलें।
  • एक नई स्क्रिप्ट बनाएं, इसे "Hitbox" नाम दें, फिर नीचे दिए गए कोड को इसके अंदर पेस्ट करें:

'Hitbox.cs'

using UnityEngine;

public class Hitbox : MonoBehaviour
{
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("Enemy"))
        {
            // Damage or destroy the enemy.
            Destroy(collision.gameObject);
        }
    }
}
  • हिटबॉक्स ऑब्जेक्ट में स्क्रिप्ट "Hitbox" संलग्न करें।

संबोधित करने योग्य प्रश्न:

  1. एनीमेशन के दौरान हिटबॉक्स को कैसे पता चलता है कि कब सक्रिय होना है? : हिटबॉक्स 'MeleeAttack.cs' स्क्रिप्ट में 'Invoke' फ़ंक्शन द्वारा सक्रिय होता है। जिस फ्रेम पर हमला होना है उसके आधार पर समय को समायोजित किया जा सकता है।
  2. यदि हिटबॉक्स एक साथ कई दुश्मनों से टकराता है तो क्या होता है?: प्रदान की गई 'Hitbox' स्क्रिप्ट का उपयोग करके, हिटबॉक्स से टकराने वाले टैग "Enemy" वाले प्रत्येक दुश्मन को नष्ट कर दिया जाएगा। क्षति या अन्य प्रभावों को प्रबंधित करने के लिए स्क्रिप्ट को समायोजित करें।
  3. क्या अटैक बटन को स्पेस कुंजी से बदला जा सकता है?: हां, 'MeleeAttack.cs' स्क्रिप्ट में, लाइन if ('Input.GetKeyDown(KeyCode.Space)') स्पेस कुंजी प्रेस की जांच करती है. आक्रमण बटन को बदलने के लिए 'KeyCode.Space' को दूसरे 'KeyCode' मान से बदलें।

निष्कर्ष

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