Layers
Buat lapisan fungsional dalam Unity

Penggunaan lapisan dalam Unity

Anda dapat menggunakan lapisan untuk mengoptimalkan proyek dan alur kerja Anda. Penggunaan umum lapisan termasuk: * rendering berbasis lapisan. * Lapisan berdasarkan collisiontabrakan terjadi ketika mesin fisika mendeteksi bahwa tabrakan dari dua GameObjects membuat kontak atau tumpang tindih, ketika setidaknya satu memiliki komponen kaku dan bergerak. More info
Lihat di Glossary
.

Gunakan masker culling kamera dengan lapisan.

Anda hanya dapat membuat objek dalam lapisan tertentu, atau pilihan lapisan, jika Anda menggunakan CameraKomponen yang menciptakan gambar sudut pandang tertentu di tempat kejadian Anda. Output ditarik ke layar atau ditangkap sebagai tekstur. More info
Lihat di Glossary
culling maskMemungkinkan Anda untuk memasukkan atau membatasi objek untuk diberikan oleh Kamera, dengan Layer.
Lihat di Glossary
. Untuk mengubah masker culling, pilih kamera yang ingin Anda gunakan, dan pilih dropdown Culling Mask di jendela InspectorJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary
. Jika Anda menghapus kotak centang lapisan, tidak render di sceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary
.

Note: elemen UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info
Lihat di Glossary
dan ruang layar kanvas anak-anak terkecuali untuk ini dan render terlepas.

Ray cast dengan lapisan

Anda dapat menggunakan lapisan untuk menentukan GameObjects yang dapat mengganggu. Untuk membuat sinar cor mengabaikan GameObjectObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary
, Anda dapat menetapkannya ke lapisan Raycast Ignore, atau melewati LayerMask ke panggilan API cor sinar.

Jika Anda tidak lulus LayerMask ke panggilan API cor sinar, Unity menggunakan Fisika.DefaultRaycastLayers yang cocok setiap lapisan kecuali Ignore Raycast.

Fisika. Fungsi Raycast menggunakan sedikit masker, dan setiap bit menentukan jika lapisan diabaikan oleh sinar atau tidak. Jika semua bit di layerMask ada di, ray collides terhadap semua collidersBentuk tak terlihat yang digunakan untuk menangani tabrakan fisik untuk objek. Seorang sari tidak perlu menjadi bentuk yang sama dengan jala objek - perkiraan kasar sering lebih efisien dan tidak dapat dibedakan dalam gameplay. More info
Lihat di Glossary
. Jika layerMask = 0, tidak ada tabrakan.

Misalnya, jika Anda ingin melemparkan sinar pada lapisan 8, lihat sampel kode di bawah ini:

int layerMask = 1 << 8;

// Does the ray intersect any objects which are in layer 8?
if (Physics.Raycast(transform.position, Vector3.forward, Mathf.Infinity, layerMask))
{
    Debug.Log("The ray hit the player");

Anda kemudian dapat melakukan terbalik, sehingga sinar tabrakan dengan semua lapisan kecuali lapisan 8.

void Update ()
{
    // Bit shift the index of the layer (8) to get a bit mask
    int layerMask = 1 << 8;

    // This casts rays only against colliders in layer 8.
    // But to collide against everything except layer 8, use the ~ operator because it inverts a bitmask.
    layerMask = ~layerMask;

    RaycastHit hit;
    // Does the ray intersect any objects excluding layer 8.
    if (Physics.Raycast(transform.position, transform.TransformDirection (Vector3.forward), out hit, Mathf.Infinity, layerMask))
    {
        Debug.DrawRay(transform.position, transform.TransformDirection (Vector3.forward) * hit.distance, Color.yellow);
        Debug.Log("Did Hit");
    }
    else
    {
        Debug.DrawRay(transform.position, transform.TransformDirection (Vector3.forward) *1000, Color.white);
        Debug.Log("Did not Hit");
    }
}

Note: Jika Anda tidak lulus layerMask ke fungsi Raycast, masih mengabaikan sari yang menggunakan lapisan IgnoreRaycast.

Layers
Buat lapisan fungsional dalam Unity