यूनिटी में प्रथम-व्यक्ति नियंत्रक बनाना

यह ट्यूटोरियल आपको Unity में एक सरल प्रथम-व्यक्ति नियंत्रक बनाने के बारे में मार्गदर्शन करेगा। प्रथम-व्यक्ति नियंत्रक खिलाड़ियों को सहज गति और कैमरा रोटेशन के साथ 3D दुनिया का पता लगाने की अनुमति देता है। हम बुनियादी C# स्क्रिप्टिंग और यूनिटी के अंतर्निहित कैरेक्टरकंट्रोलर घटक का उपयोग करेंगे।

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

अपने प्रथम-व्यक्ति नियंत्रक के लिए बुनियादी दृश्य वातावरण सेट अप करके आरंभ करें:

  1. Unity में, एक नया 3D दृश्य बनाएं।
  2. ग्राउंड सतह बनाने के लिए GameObject > 3D Object > Plane पर जाएं।
  3. विमान के पैमाने को इस प्रकार समायोजित करें कि वह इतना बड़ा हो कि खिलाड़ी उस पर चल सके।
  4. GameObject > 3D Object > Cube पर जाकर बाधाओं या दीवारों को जोड़ें जिनसे आप बातचीत कर सकें।

2. प्लेयर ऑब्जेक्ट जोड़ना

खिलाड़ी को दर्शाने के लिए हम एक कैप्सूल ऑब्जेक्ट का उपयोग करेंगे:

  • दृश्य में कैप्सूल जोड़ने के लिए GameObject > 3D Object > Capsule पर जाएं।
  • कैप्सूल को ज़मीन से थोड़ा ऊपर रखें (उदाहरण के लिए, स्थिति = (0, 1, 0)).
  • कैप्सूल का नाम बदलकर Player कर दें।
  • कैप्सूल कोलाइडर घटक को हटा दें क्योंकि कैरेक्टरकंट्रोलर टकरावों को संभालेगा।
  • प्लेयर का चयन करके प्लेयर ऑब्जेक्ट में CharacterController घटक जोड़ें, फिर इंस्पेक्टर में Add Component पर क्लिक करें और CharacterController खोजें।

3. प्रथम-व्यक्ति नियंत्रक स्क्रिप्ट लिखना

अब, प्लेयर मूवमेंट और कैमरा रोटेशन को संभालने के लिए एक स्क्रिप्ट बनाएं:

  1. प्रोजेक्ट विंडो में, राइट-क्लिक करें और Create > C# Script चुनें। इसे FirstPersonController नाम दें।
  2. स्क्रिप्ट को प्रोजेक्ट विंडो से पदानुक्रम में प्लेयर तक खींचकर प्लेयर ऑब्जेक्ट से संलग्न करें।

स्क्रिप्ट खोलें और उसकी सामग्री को निम्नलिखित कोड से बदलें:

using UnityEngine;

public class FirstPersonController : MonoBehaviour
{
    public float moveSpeed = 5f;
    public float mouseSensitivity = 2f;
    public float gravity = -9.81f;

    private CharacterController controller;
    private Vector3 velocity;
    private Transform cameraTransform;

    void Start()
    {
        controller = GetComponent();
        cameraTransform = Camera.main.transform;
        cameraTransform.position = new Vector3(transform.position.x, transform.position.y + 1.5f, transform.position.z);
        cameraTransform.parent = transform; // Attach camera to player
    }

    void Update()
    {
        // Player movement
        float moveX = Input.GetAxis("Horizontal") * moveSpeed;
        float moveZ = Input.GetAxis("Vertical") * moveSpeed;
        Vector3 move = transform.right * moveX + transform.forward * moveZ;

        controller.Move(move * Time.deltaTime);

        // Apply gravity
        if (controller.isGrounded && velocity.y < 0)
        {
            velocity.y = -2f;
        }
        velocity.y += gravity * Time.deltaTime;
        controller.Move(velocity * Time.deltaTime);

        // Camera rotation
        float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity;
        float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity;

        transform.Rotate(Vector3.up * mouseX);
        cameraTransform.Rotate(Vector3.left * mouseY);
    }
}

4. कैमरा जोड़ना

प्रथम-व्यक्ति दृश्य के लिए, कैमरे को प्लेयर से जोड़ा जाना आवश्यक है:

  • पदानुक्रम में मुख्य कैमरा का चयन करें।
  • इसे प्लेयर ऑब्जेक्ट से थोड़ा ऊपर रखें (उदाहरणार्थ, Y = 1.5)।
  • कैमरे को हाइरार्की में प्लेयर ऑब्जेक्ट पर खींचें ताकि यह प्लेयर का चाइल्ड बन जाए। इससे यह प्लेयर की हरकतों और घुमावों का अनुसरण करेगा।

5. इनपुट कॉन्फ़िगर करना

यूनिटी का इनपुट मैनेजर मूवमेंट के लिए “हॉरिजॉन्टल” और “वर्टिकल” जैसे पूर्वनिर्धारित अक्ष नामों का उपयोग करता है, साथ ही माउस इनपुट के लिए “माउस एक्स” और “माउस वाई” का भी उपयोग करता है। इन्हें स्वचालित रूप से कॉन्फ़िगर किया जाता है, लेकिन आप संपादन> प्रोजेक्ट सेटिंग्स> इनपुट मैनेजर में संवेदनशीलता को समायोजित कर सकते हैं।

6. नियंत्रक का परीक्षण

अब जब प्रथम-व्यक्ति नियंत्रक तैयार है, तो इसका परीक्षण करने के लिए प्ले बटन दबाएं:

  • प्लेयर को आगे, पीछे और बगल में ले जाने के लिए W, A, S, D का उपयोग करें।
  • कैमरा घुमाने के लिए माउस को घुमाएँ और चारों ओर देखें।
  • यह सुनिश्चित करें कि गुरुत्वाकर्षण काम कर रहा है, इसके लिए किसी भी उभरी हुई वस्तु से नीचे उतरकर देखें कि खिलाड़ी स्वाभाविक रूप से नीचे गिरता है या नहीं।

7. नियंत्रक को उन्नत बनाना

आप प्रथम-व्यक्ति नियंत्रक को और बेहतर बनाने के लिए निम्नलिखित चीज़ें जोड़ सकते हैं:

  • शिफ्ट कुंजी को दबाकर मूवस्पीड को बढ़ाकर स्प्रिंटिंग कार्यक्षमता।
  • खिलाड़ी द्वारा स्पेसबार दबाने पर पता लगाकर ऊपर की ओर वेग लागू करके जंपिंग लॉजिक।
  • पर्यावरण के साथ अधिक जटिल खिलाड़ी अंतःक्रिया के लिए चढ़ाई या झुकने की यांत्रिकी।

निष्कर्ष

इस बुनियादी प्रथम-व्यक्ति नियंत्रक के साथ, अब आपके पास 3D वातावरण की खोज के लिए एक कार्यात्मक प्लेयर सेटअप है। स्क्रिप्ट को अनुकूलित और विस्तारित करके, आप अपने गेम की ज़रूरतों के अनुरूप अधिक सुविधाएँ और इंटरैक्शन जोड़ सकते हैं।