एकता में पार्कौर प्रणाली लागू करना

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

आवश्यक संपत्ति

  • एक बुनियादी चरित्र नियंत्रक : हम संशोधनों के लिए आधार वर्ग के रूप में Unity में तीसरे व्यक्ति कैमरे से एक प्लेयर नियंत्रक का उपयोग करेंगे।
  • पार्कौर एनिमेशन: वॉल-रनिंग, वॉल्टिंग, आदि।

1. दृश्य की स्थापना

  • सुनिश्चित करें कि पर्यावरण में दीवारों और बाधाओं को उचित रूप से टैग किया गया है, दीवारों के लिए "Wall" और वॉल्टेबल बाधाओं के लिए "Obstacle" का उपयोग करें।

2. वॉल रनिंग के लिए 'SC_TPSController' स्क्रिप्ट को संशोधित करना

2.1. दीवार का पता लगाना:

  • यह विधि रेकास्टिंग का उपयोग करके जांच करती है कि पात्र दीवार के पास है या नहीं।
bool IsBesideWall(Vector3 direction)
{
    RaycastHit hit;
    if (Physics.Raycast(transform.position, direction, out hit, 1f))
    {
        if (hit.transform.CompareTag("Wall"))
        {
            return true;
        }
    }
    return false;
}

2.2. दीवार चलाना

  • यह कॉरआउटाइन वॉल रनिंग को संभालता है।
public float wallRunTime = 2f; // Duration of the wall run.

IEnumerator WallRun(Vector3 direction)
{
    float startTime = Time.time;
    canMove = false; // Disable regular movement during wall run.

    while (Time.time - startTime < wallRunTime)
    {
        characterController.Move(direction * speed * Time.deltaTime);
        yield return null;
    }

    canMove = true; // Enable regular movement after wall run.
}
  • 'Update()' विधि में वॉल रनिंग को एकीकृत करें:
// Wall Run
if (IsBesideWall(transform.right) && Input.GetButton("Jump") && canMove && !characterController.isGrounded)
{
    StartCoroutine(WallRun(transform.right));
}
else if (IsBesideWall(-transform.right) && Input.GetButton("Jump") && canMove && !characterController.isGrounded)
{
    StartCoroutine(WallRun(-transform.right));
}

3. वॉल्टिंग के लिए 'SC_TPSController' को संशोधित करना

3.1. किसी बाधा का पता लगाना

  • चरित्र के सामने किसी ख़तरनाक बाधा की जाँच करें।
bool IsObstacleInFront()
{
    RaycastHit hit;
    if (Physics.Raycast(transform.position, transform.forward, out hit, 1.5f))
    {
        if (hit.transform.CompareTag("Obstacle"))
        {
            return true;
        }
    }
    return false;
}

3.2. वॉल्टिंग

  • वॉल्टिंग विधि जोड़ें:
void Vault()
{
    canMove = false; // Disable regular movement during vaulting.
    
    // Translate the player over the obstacle.
    Vector3 vaultMovement = (Vector3.up + transform.forward) * speed * Time.deltaTime;
    characterController.Move(vaultMovement);
    
    canMove = true; // Enable regular movement after vaulting.
}
  • वॉल्टिंग को 'Update()' विधि में एकीकृत करें:
// Vaulting
if (IsObstacleInFront() && Input.GetButton("Jump") && canMove && characterController.isGrounded)
{
    Vault();
}

निष्कर्ष

ये संशोधन मौजूदा तृतीय-व्यक्ति प्लेयर नियंत्रक में वॉल रनिंग और वॉल्टिंग कार्यक्षमताएं पेश करेंगे। विभिन्न परिदृश्यों में इन नए आंदोलनों का परीक्षण करें ताकि यह सुनिश्चित हो सके कि वे अपेक्षा के अनुरूप प्रदर्शन कर रहे हैं। खेल के विशिष्ट वातावरण या वांछित पार्कौर यांत्रिकी के आधार पर समायोजन आवश्यक हो सकता है।

सुझाए गए लेख
एकता में क्रेन नियंत्रण कैसे बनाएं
चरित्र नियंत्रक एकता में कठोर पिंडों को धकेलने की क्षमता कैसे जोड़ें
एकता के लिए संवाद प्रणाली
यूनिटी में एफपीएस प्लेयर में क्राउचिंग जोड़ना
एकता के लिए प्लेयर 3डी और 2डी वॉल जंप ट्यूटोरियल
एकता के लिए टॉर्च ट्यूटोरियल
एकता में खिलाड़ी आंदोलन बनाना