खोज…


परत का उपयोग

एकता परतें टैग के समान होती हैं क्योंकि उनका उपयोग उन वस्तुओं को परिभाषित करने के लिए किया जा सकता है जिनके साथ बातचीत की जानी चाहिए या एक निश्चित तरीके से व्यवहार करना चाहिए, हालांकि, परतों का उपयोग मुख्य रूप से Physics वर्ग में कार्यों के साथ किया जाता है: एकता प्रलेखन - भौतिकी

परतों को एक पूर्णांक द्वारा दर्शाया जाता है और इस तरीके से कार्यों को पास किया जा सकता है:

using UnityEngine;
class LayerExample {

    public int layer;

    void Start()
    {
        Collider[] colliders = Physics.OverlapSphere(transform.position, 5f, layer);
    }
}

इस तरीके से एक लेयर का उपयोग करने पर केवल Colliders शामिल होंगे जिनके GameObjects में की गई गणना में निर्दिष्ट परत है। यह प्रदर्शन को बेहतर बनाने के साथ ही तर्क को और सरल बनाता है।

लेयरमास्क संरचना

LayerMask संरचना एक इंटरफ़ेस है जो फ़ंक्शन में पूर्णांक को पास करने की तरह लगभग कार्य करता है। हालांकि, इसका सबसे बड़ा लाभ उपयोगकर्ता को निरीक्षक में ड्रॉप-डाउन मेनू से प्रश्न में परत का चयन करने की अनुमति देता है।

using UnityEngine;
class LayerMaskExample{

    public LayerMask mask;
    public Vector3 direction;

    void Start()
    {
        if(Physics.Raycast(transform.position, direction, 35f, mask))
        {
            Debug.Log("Raycast hit");
        }
    {
}

इसमें कई स्थिर कार्य भी होते हैं जो परत नामों को सूचकांकों या सूचकांकों को परत नामों में परिवर्तित करने की अनुमति देते हैं।

using UnityEngine;
class NameToLayerExample{

    void Start()
    {
        int layerindex = LayerMask.NameToLayer("Obstacle");
    {
}

लेयर चेकिंग को आसान बनाने के लिए निम्नलिखित विस्तार विधि को परिभाषित करें।

public static bool IsInLayerMask(this GameObject @object, LayerMask layerMask)
{
    bool result = (1 << @object.layer & layerMask) == 0;

    return result;
}

यह विधि आपको यह जांचने की अनुमति देगी कि क्या गेमबोक एक लेयरमास्क (संपादक में चयनित) है या नहीं।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow