किसी अन्य दृश्य की सामग्री को बनावट के रूप में प्रदर्शित करने के लिए रेंडर बनावट का उपयोग करें।
सत्यापन वातावरण
- विंडोज़
-
- विंडोज 11
- एकता संपादक
-
- 2021.3.3f1
- इनपुट सिस्टम पैकेज
-
- 1.3.0
इस टिप के लिए आवश्यक शर्तें
इस टिप के विवरण के लिए एक आधार के रूप में निम्नलिखित सेटिंग्स पहले से बनाई गई हैं।
पहले
रेंडर बनावट आपको स्क्रीन के बजाय अपने चित्रों को बनावट में लिखने की अनुमति देती है। यह आपको पहले से बनावट छवियों को तैयार किए बिना गेम निष्पादन के दौरान स्वतंत्र रूप से बनावट उत्पन्न करने की अनुमति देता है।
आप एक रेंडर बनावट में भी लिख सकते हैं जो गतिशील रूप से हर फ्रेम को बदलता है, उदाहरण के लिए, गेम में मौजूद डिस्प्ले पर मुख्य कैमरे से एक अलग छवि प्रोजेक्ट करने के लिए।
चित्र तैयार करना
रेंडर बनावट का उपयोग करते समय, आपको एक छवि तैयार करने की आवश्यकता नहीं होती है, लेकिन आप ड्राइंग परिणाम को समझने में आसान बनाने के लिए इसे एक नमूने के रूप में तैयार कर सकते हैं।
रेंडर बनावट बनाना
परियोजना से एक संपत्ति बनाएं। बनाएँ से, रेंडर बनावट का चयन करें.
नाम मनमाना हो सकता है। चूंकि इस समय नाम सीधे बाहर से NewRenderTexture
निर्दिष्ट नहीं है, इसलिए छोड़ दें।
रेंडर बनावट का चयन करें और निरीक्षक से इसका आकार निर्दिष्ट करें। चूंकि रेंडर बनावट एक आरेखण क्षेत्र है, इसलिए आपको एक आकार निर्दिष्ट करना होगा। इस बार, मैं अलग से बनाया गया एक दृश्य लिखना चाहता हूं, इसलिए मैंने पहलू अनुपात 16: 9 पर सेट किया।
रेंडर बनावट गंतव्य सेट करना
प्रारंभ में बनाए गए दृश्य के पदानुक्रम से "UI" > "कच्ची छवि" का चयन करें। रेंडर बनावट की सामग्री को इस ऑब्जेक्ट में प्रदर्शित करें. यह यूआई का एक ऑब्जेक्ट है, लेकिन आपको जो चाहिए वह एक "रॉ इमेज" घटक है, जिसे किसी अन्य ऑब्जेक्ट पर सेट किया जा सकता है।
रॉइमेज को रखा गया है। क्योंकि यह एक यूआई ऑब्जेक्ट है, इसे कैनवास में रखा गया है। मैंने अभी तक कुछ भी सेट नहीं किया है, इसलिए मुझे सिर्फ एक सफेद आयत मिलती है।
हम चाहते हैं कि स्केल एक-दूसरे के बराबर हो, इसलिए हमने रॉइमेज ऑब्जेक्ट का आकार रेंडर बनावट के समान सेट किया है। यदि आप पहलू अनुपात समान रखते हैं, तो आरेखण परिणाम केवल आकार बदलने पर ही स्केल किया जाएगा, लेकिन यदि आप पहलू अनुपात बदलते हैं, तो आरेखण परिणाम लंबवत या क्षैतिज रूप से कुचल दिया जाएगा।
रॉइमेज ऑब्जेक्ट के रॉ इमेज घटक में एक "बनावट" है, इसलिए आपके द्वारा अभी बनाई गई रेंडर बनावट सेट करें। रेंडर बनावट की सामग्री अभी भी खाली है, इसलिए वे दृश्य में पारदर्शी हैं।
रेंडर बनावट ड्राइंग सामग्री का एक दृश्य बनाना
इसके बाद, रेंडर बनावट में खींची जाने वाली सामग्री बनाने के लिए एक नया दृश्य बनाएं। मेनू से फ़ाइल चुनें और नया दृश्य चुनें.
चूंकि यह नमूना 2 डी है, इसलिए आप 2 डी दृश्य भी चुनेंगे।
इसे दृश्य फ़ोल्डर में बनाएँ। SampleSceneTexture
नाम को इस रूप में छोड़ दें।
दृश्य बनाने के बाद, वस्तुओं को उचित रूप से रखें। आपको बस यह सुनिश्चित करना है कि आप रेंडर बनावट की सामग्री को जानते हैं। यह पुष्टि करने के लिए कि कैमरे के बाहर उभरी हुई कोई भी चीज खींची नहीं गई है, कैमरा फ्रेम के पास एक स्प्राइट भी रखा गया है।
यदि ऑब्जेक्ट ओवरलैप होते हैं, तो ऑब्जेक्ट्स का संदर्भ अनिश्चित होगा, इसलिए यदि आपके पास पृष्ठभूमि है, तो पृष्ठभूमि परतों का क्रम कम करें।
"मेनकैमरा" का चयन करने के बाद, रेंडर बनावट को "लक्ष्य बनावट" में सेट करें। यह ड्राइंग को रेंडर बनावट में खींचने का कारण बनता है।
MainCamera पर सेट ऑडियो श्रोता घटक निकालें। रेंडर बनावट के लिए आपको केवल ड्राइंग की आवश्यकता है, इसलिए आपको ऑडियो श्रोता की आवश्यकता नहीं है। यदि रनटाइम पर कई "ऑडियो श्रोता" हैं तो एक चेतावनी प्रदर्शित की जाएगी।
वैसे, यदि आप इस स्थिति में रेंडर बनावट के लिए दृश्य चलाते हैं, तो स्क्रीन पर कुछ भी प्रदर्शित नहीं होगा। ऐसा इसलिए है क्योंकि आप एक रेंडर बनावट पर ड्राइंग कर रहे हैं। यदि आप इसे स्क्रीन पर जांचना चाहते हैं, तो "लक्ष्य बनावट" को हटा दें और फिर इसे निष्पादित करें।
लेयर सेटिंग्स
इस नमूने में, आपको एक ही समय में दो दृश्यों को स्थानांतरित करना होगा, लेकिन यदि आप उन्हें वैसे ही स्थानांतरित करते हैं, तो रेंडर बनावट में खींची जाने वाली सामग्री भी मुख्य स्क्रीन पर प्रदर्शित की जाएगी, इसलिए परतों को अलग से नहीं खींचा जाएगा।
सबसे पहले, संपादक के ऊपरी दाएं कोने में परत से "परत संपादित करें" चुनें।
नाम और स्थान मनमाना है, लेकिन यहां हम एक नई RenderTarget
परत जोड़ देंगे जिसका नाम है।
परत जोड़ने के बाद, रेंडर बनावट के लिए दृश्य खोलें, उन सभी वस्तुओं का चयन करें जिन्हें आप खींचना चाहते हैं, और परत मान को आपके द्वारा बनाए गए RenderTarget
में बदलें।
SampleSceneTexture
इससे दृश्य का संपादन समाप्त हो जाएगा, इसलिए कृपया इसे सहेजें।
रेंडर बनावट प्रदर्शित करना
SampleScene
एक बार जब आप एक दृश्य खोल लेते हैं, तो दृश्य को खींचकर और छोड़ कर इसे पदानुक्रम SampleSceneTexture
में जोड़ें।
फिर, पदानुक्रम में दो दृश्य होने चाहिए, और दृश्य की सामग्री स्क्रीन पर SampleSceneTexture
प्रदर्शित की जानी चाहिए।
SampleSceneTexture
दृश्य की सामग्री परेशान करने वाली है, इसलिए पदानुक्रम से दृश्य के आंख आइकन पर क्लिक करें SampleSceneTexture
।
SampleSceneTexture
यह दृश्य में वस्तुओं को छिपा देगा और केवल दृश्य की सामग्री दिखाई देगी SampleScene
।
वैसे, चूंकि सभी रेंडर बनावट सेटिंग्स पूरी हो गई हैं,SampleScene
इसलिए रेंडर बनावट की सामग्री को दृश्य में रखी गई कच्ची छवि में प्रदर्शित किया जाना चाहिए।
हालांकि, आंख आइकन द्वारा छिपाना केवल संपादक पर अदृश्य बनाने के लिए एक सेटिंग है, इसलिए यदि आप SampleSceneTexture
गेम को चलाते हैं, तो दृश्य की सामग्री भी स्क्रीन पर प्रदर्शित होगी।
SampleScene
फिर दृश्य Main Camera
का चयन करें और इंस्पेक्टर में मास्क को मारने से RenderTarget
अनचेक करेंCamera
।
यह गेम चलने पर परत में ऑब्जेक्ट्स को प्रदर्शित RenderTarget
होने से रोकता है।
खेल चलाने की कोशिश करो। यह इच्छित रूप में दिखाई देना चाहिए।
रेंडर बनावट को स्थानांतरित करने का प्रयास करें।
हालांकि, इस स्थिति में, यह जानना मुश्किल है कि क्या यह वास्तव में एक रेंडर बनावट के रूप में काम कर रहा है या बस छवि को फसल के रूप में प्रदर्शित कर रहा है, तो आइए इसे स्थानांतरित करें।
सामग्री कुछ भी हो सकती है, लेकिन यहां हम स्प्राइट को स्वचालित रूप से घुमाने के लिए आंदोलन सेट करेंगे। एक SelfRotate
स्क्रिप्ट बनाएँ और इसे इस रूप में बनाएँ।
यहां, हम खुद को थोड़ा-थोड़ा करके घुमाने की एक सरल प्रक्रिया शामिल करेंगे।
using UnityEngine;
public class SelfRotate : MonoBehaviour
{
// 更新はフレームごとに 1 回呼び出されます
void Update()
{
transform.Rotate(0, 0, 0.1f);
}
}
स्क्रिप्ट बनाने के बाद, उस ऑब्जेक्ट को अधिक से अधिक अनुलग्न करें जिसे आप घुमाना चाहते हैं।
फिर गेम चलाएं और देखें कि यह घूमता है या नहीं। मुझे लगता है कि आप देख सकते हैं कि वस्तु रेंडर बनावट में आगे बढ़ रही है।
एक ही समय में कई दृश्यों को कैसे स्थानांतरित करें
यहां, हमने एक सरल उदाहरण बनाया ताकि हमारे पास शुरुआत से चलने वाले दो दृश्य हों, लेकिन एक वास्तविक खेल में, ऐसे कई मामले हैं जहां आपको एक ही दृश्य से शुरू करना होगा। उस स्थिति में, मुझे लगता है कि आपको दृश्य की शुरुआत में दृश्यों को गतिशील रूप से जोड़ना होगा ताकि इसे कई दृश्य बनाया जा सके।
कृपया किसी दृश्य को जोड़ने के तरीके के स्पष्टीकरण के लिए "एक दृश्य जोड़ना" देखें।
मूल रूप से, SceneManager.LoadScene("<シーン名>", LoadSceneMode.Additive);
कॉलिंग को अधिकांश समस्याओं को हल करना चाहिए।
परतों का उपयोग किए बिना रेंडर बनावट की सामग्री को मुख्य स्क्रीन पर दिखाई देने से कैसे रोकें
रेंडर बनावट की सामग्री मुख्य स्क्रीन पर प्रदर्शित होती है क्योंकि मुख्य दृश्य और रेंडर बनावट दृश्य एक ही स्थान पर होते हैं। इसलिए, यदि आप रेंडर बनावट की सामग्री को ऐसी जगह ले जाते हैं जो मुख्य दृश्य में कभी नहीं दिखाया जाता है, तो इसे मुख्य स्क्रीन पर प्रदर्शित नहीं किया जाएगा। उदाहरण के लिए, आप रेंडर बनावट ऑब्जेक्ट या कैमरा को (-10000, -10000) स्थान पर ले जा सकते हैं. इस तरह, परत सेटिंग्स अनावश्यक हैं।
जब आप एक रेंडर बनावट की सामग्री को अलग-अलग दृश्यों में विभाजित किए बिना एक दृश्य में पूरा करना चाहते हैं।
यह परतों के बिना पिछली विधि के समान तकनीक का उपयोग करके किया जाता है। आप रेंडर बनावट द्वारा प्रदर्शित सामग्री को ऐसी जगह ले जा सकते हैं जहां यह मुख्य कैमरे पर कभी प्रदर्शित नहीं होगा। दृश्यों को अलग करने की विधि से अंतर यह है कि आपको दो कैमरे लगाने की आवश्यकता है, लेकिन इसके अलावा, आपके पास मूल रूप से दृश्यों को अलग करने की विधि के समान सेटिंग्स होंगी।
यदि आप रेंडर बनावट के रूप में 3 डी गेम में एक अलग परिप्रेक्ष्य से कैप्चर की गई सामग्री कैप्चर करना चाहते हैं।
इस टिप ने 3 डी के बारे में ज्यादा बात नहीं की क्योंकि यह 2 डी पर केंद्रित है, लेकिन दृष्टिकोण मूल रूप से समान है। चूंकि आप कई दृष्टिकोणों से एक ही 3 डी स्थान प्रोजेक्ट कर रहे हैं, इसलिए आपको दो से अधिक दृश्यों की आवश्यकता नहीं है। आपको बस इतना करना है कि जितने चाहें उतने कैमरे लगाएं, रेंडर बनावट के रूप में ड्राइंग गंतव्य सेट करें, और रेंडर बनावट को प्रदर्शित करने के लिए सेट करें।