यूनिटी में पोर्टल सिस्टम बनाना
पोर्टल कई खेलों में एक लोकप्रिय विशेषता है, जो खिलाड़ियों को विभिन्न स्थानों के बीच सहजता से टेलीपोर्ट करने में सक्षम बनाता है। इस ट्यूटोरियल में, हम Unity में पोर्टल सिस्टम बनाने के लिए विभिन्न तकनीकों का पता लगाएंगे। हम बुनियादी टेलीपोर्टेशन, विज़ुअल पोर्टल के लिए रेंडर टेक्सचर का उपयोग करना, और पोर्टल मैकेनिक्स को लागू करना शामिल करेंगे जो खिलाड़ी अभिविन्यास और गति को बनाए रखते हैं।
परियोजना की स्थापना
आरंभ करने के लिए, आइए एक बुनियादी Unity प्रोजेक्ट सेट करें:
- एक नया Unity प्रोजेक्ट बनाएं.
- हमारी स्क्रिप्ट को व्यवस्थित करने के लिए
Scripts
नाम से एक नया फ़ोल्डर जोड़ें। - एक खिलाड़ी चरित्र और दो पोर्टल वस्तुओं सहित कुछ बुनियादी वस्तुओं के साथ एक नया 3D दृश्य बनाएं।
बुनियादी टेलीपोर्टेशन
पोर्टल प्रणाली का सबसे सरल रूप बुनियादी टेलीपोर्टेशन है, जहां खिलाड़ी तुरंत एक स्थान से दूसरे स्थान पर चला जाता है।
टेलीपोर्टेशन स्क्रिप्ट बनाना
using UnityEngine;
public class TeleportationPortal : MonoBehaviour
{
public Transform destination;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
other.transform.position = destination.position;
other.transform.rotation = destination.rotation;
}
}
}
इस स्क्रिप्ट को दोनों पोर्टल ऑब्जेक्ट्स से जोड़ें और संबंधित पोर्टल को गंतव्य निर्दिष्ट करें।
विज़ुअल पोर्टल्स के लिए रेंडर टेक्सचर का उपयोग करना
अधिक प्रभावशाली पोर्टल प्रणाली बनाने के लिए, हम पोर्टल के दूसरी ओर क्या है, यह दिखाने के लिए रेंडर टेक्सचर का उपयोग कर सकते हैं।
रेंडर टेक्सचर सेट अप करना
- प्रोजेक्ट विंडो में राइट-क्लिक करके और
Create > Render Texture
का चयन करके एक नया रेंडर टेक्सचर बनाएं। - दूसरा रेंडर टेक्सचर बनाने के लिए इसे दोहराएं।
- दृश्य में दो नए कैमरे बनाएं, प्रत्येक पोर्टल के लिए एक, और प्रत्येक कैमरे को एक रेंडर टेक्सचर असाइन करें।
- पोर्टल्स के गंतव्यों से मेल खाने के लिए कैमरों की स्थिति निर्धारित करें।
रेंडर टेक्सचर लागू करना
using UnityEngine;
public class Portal : MonoBehaviour
{
public Camera portalCamera;
public Material portalMaterial;
void Start()
{
portalMaterial.mainTexture = portalCamera.targetTexture;
}
}
इस स्क्रिप्ट को प्रत्येक पोर्टल से जोड़ें और संबंधित पोर्टल कैमरा और सामग्री को रेंडर टेक्सचर के साथ असाइन करें।
खिलाड़ी अभिविन्यास और गति बनाए रखना
पोर्टल प्रणाली को अधिक यथार्थवादी बनाने के लिए, हमें पोर्टल से गुजरते समय खिलाड़ी की दिशा और गति को बनाए रखने की आवश्यकता है।
उन्नत टेलीपोर्टेशन स्क्रिप्ट
using UnityEngine;
public class EnhancedPortal : MonoBehaviour
{
public Transform destination;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
CharacterController playerController = other.GetComponent();
Rigidbody playerRigidbody = other.GetComponent();
// Disable the CharacterController to allow manual position and rotation updates
if (playerController != null)
{
playerController.enabled = false;
}
// Maintain orientation
Vector3 relativePosition = destination.InverseTransformPoint(other.transform.position);
other.transform.position = destination.TransformPoint(relativePosition);
// Maintain momentum
if (playerRigidbody != null)
{
Vector3 relativeVelocity = destination.InverseTransformDirection(playerRigidbody.velocity);
playerRigidbody.velocity = destination.TransformDirection(relativeVelocity);
}
// Re-enable the CharacterController
if (playerController != null)
{
playerController.enabled = true;
}
}
}
}
इस स्क्रिप्ट को प्रत्येक पोर्टल से जोड़ें और संबंधित गंतव्य निर्दिष्ट करें।
पोर्टल प्रणाली का परीक्षण
पोर्टल प्रणाली का परीक्षण करने के लिए, इन चरणों का पालन करें:
- खिलाड़ी पात्र को किसी एक पोर्टल के पास रखें।
- गेम चलाने के लिए
Play
दबाएँ। - खिलाड़ी पात्र को पोर्टल में ले जाएं और टेलीपोर्टेशन और दृश्य प्रभावों का अवलोकन करें।
निष्कर्ष
हमने Unity में पोर्टल सिस्टम बनाने के लिए विभिन्न तकनीकों का पता लगाया है। हमने बुनियादी टेलीपोर्टेशन से शुरुआत की, रेंडर टेक्सचर का उपयोग करके विज़ुअल पोर्टल जोड़े, और खिलाड़ी अभिविन्यास और गति को बनाए रखने के लिए सिस्टम को बढ़ाया। इन अवधारणाओं को आपके विशिष्ट गेम प्रोजेक्ट की ज़रूरतों के अनुसार आगे बढ़ाया और अनुकूलित किया जा सकता है।