किसी स्क्रिप्ट से प्रीफैब पर आधारित ऑब्जेक्ट बनाएँ

पेज अद्यतन :
पेज निर्माण की तारीख :

सत्यापन वातावरण

विंडोज़
  • विंडोज 11
एकता संपादक
  • 2021.3.3f1
इनपुट सिस्टम पैकेज
  • 1.3.0

इस टिप के लिए आवश्यक शर्तें

इस टिप के विवरण के लिए एक आधार के रूप में निम्नलिखित सेटिंग्स पहले से बनाई गई हैं।

किसी स्क्रिप्ट में प्रीफैब पर आधारित ऑब्जेक्ट बनाएँ

पिछले टिप्स में, हमने प्रीफैब से ऑब्जेक्ट्स को दृश्य में रखा, लेकिन इस मामले में, हम वस्तुओं की एक पूर्व निर्धारित संख्या रखते हैं और गेम लॉन्च करते हैं। हालाँकि, कुछ गेम गेम चलने के दौरान गतिशील रूप से ऑब्जेक्ट्स जोड़ना चाह सकते हैं। उस स्थिति में, आपको इसे स्क्रिप्ट में प्रीफैब से जोड़ना होगा।

नमूना निर्माण

नई परियोजना को तैनात करने के बाद, बटन रखें। जब भी हम बटन पर क्लिक करते हैं तो आइए प्रीफैब से एक ऑब्जेक्ट उत्पन्न करने का प्रयास करें।

एक प्रीफैब बनाएँ. यह पिछले सुझावों के समान प्रक्रिया है

अगली बार जब आप बटन क्लिक करें तो ऑब्जेक्ट जोड़ने के लिए एक स्क्रिप्ट बनाएँ. ButtonEvent नाम को इस रूप में छोड़ दें।

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  [SerializeField] private GameObject SpritePrefab;

  public void OnClick()
  {
    // Instantiate にプレハブを渡すとそれをもとに新しいオブジェクトを生成する
    var obj = Instantiate(SpritePrefab);

    // 配置位置はランダムに
    obj.transform.localPosition = new Vector3(Random.value * 6 - 3, Random.value * 6 - 3);
  }
}

GameObject फ़ील्ड को परिभाषित करें ताकि आप पहले से सेट कर सकें कि कौन सा प्रीफैब उत्पन्न किया जाना है।

Instantiate आप उस ऑब्जेक्ट पर आधारित एक नया ऑब्जेक्ट बनाने के लिए एक GameObject विधि पास कर सकते हैं।

बनाई गई वस्तु की स्थिति मूल बन जाती है, और इससे कोई फर्क नहीं पड़ता कि कितनी वस्तुएं बनाई जाती हैं, वस्तुएं ओवरलैप होती हैं और इसे समझना मुश्किल होता है, इसलिए निर्माण के बाद स्थिति यादृच्छिक रूप से निर्धारित की जाती है। स्थिति समायोजन मान उपयुक्त है क्योंकि यह एक नमूना है।

स्क्रिप्ट को इवेंटसिस्टम में अनुलग्न करें।

GameObject सेट है इसलिए प्रीफैब को यहां छोड़ दें।

जब बटन पर क्लिक किया जाता है, तो विधि को कहा जाता है OnClick

नमूना निष्पादन

एक बार बनाने के बाद, गेम चलाएं और बटन पर क्लिक करें। प्रत्येक क्लिक को एक ऑब्जेक्ट उत्पन्न करना चाहिए।

बेशक, चूंकि यह प्रीफैब के आधार पर उत्पन्न होता है, यदि प्रीफैब का मूल्य बदलता है, तो उत्पन्न ऑब्जेक्ट उस मूल्य के अनुसार उत्पन्न होगा।