วิธีการใช้งาน
1. ให้ทำการสร้าง Cube, Sphere, Capsule, Cylinder และ Quad ตามรูป
Cube = Layer1
Sphere = Layer2
Capsule = Layer3
Cylinder = Layer4
Quad = Layer5
4. จากนั้นให้ทำการสร้าง C# Script (CameraMask.cs) และทำการเพิ่มโค้ด(ด้านล่าง) จากนั้น assign ให้กับ MainCamera
using UnityEngine;
using System.Collections;
public class CameraMask : MonoBehaviour
{
//public int shiftBit = 0;
public LayerMask mask;
void Update()
{
// แสดง Layer ที่ทำการ shiftBit และ Layer ถัดไป (ด้วย operation " |" ) เช่น แสดง Layer 8 และ Layer 9
//camera.cullingMask = 1 << shiftBit | 1 << shiftBit + 1 ;
camera.cullingMask = mask;
}
}
จากตัวอย่างโค้ด จะเห็นได้ว่าเราสามารถ Set Culling Mask ได้ 2 วิธี คือ
1. ใช้วิธี Shift Bit (Left Shift = ยกกำลัง 2, Right Shift = หาร 2)
2. ใช้วิธี Set LayerMask (เป็นการ +/- ค่าของ Layer)
ค่าของ Layer (อ้างอิงตามรูป)
Nothing = 0
Everything = -1
Builtin Layer 0 = 1
Builtin Layer 1 = 2
Builtin Layer 2 = 4
Builtin Layer 3 = 8
...
...
User Layer N = (User Layer N-1) ^ 2
เท่านี้เราก็สามารถเอาไปประยุกต์ใช้ในการ ซ่อน Object ได้แล้วครับ (ลด Draw Call ด้วย)
ปล. มีอะไรแนะนำได้นะครับ