π½ SOLID μμΉ κ΄λ ¨λ λ΄μ©μ μλμμ π½
μ λν°μμ λ μ΄μ΄μ λν μ²λ¦¬λ₯Ό ν¨μ¬ ν¨μ¨μ μΌλ‘ νλ λ°©λ²μΌλ‘ λ μ΄μ΄λ§μ€ν¬λ₯Ό νμ©ν©λλ€.
μ λν°μμλ μ΄ 32κ°(0~31)μ λ μ΄μ΄λ₯Ό νμ©ν μ μμΌλ©°, μ΄λ₯Ό νλ²μ μ²λ¦¬νκΈ° μν΄ μ μν λ³μμ κ° λΉνΈ(32λΉνΈ)λ₯Ό ν λΉνμ¬ μ²λ¦¬ν©λλ€. 1κ°μ λ³μλ₯Ό μ¬λ¬ κ°μ boolκ°μ²λΌ μ²λ¦¬νλ λ°©λ²!
μλ₯Ό λ€μ΄, μΉ΄λ©λΌμμ νΉμ λ μ΄μ΄μ μλ κ°μ²΄λ§ 촬μνλ Culling Maskλ₯Ό μκ°ν΄λ΄ μλ€. μ΄λ₯Ό μ΄λ κ² κ΅¬νν μλ μμ΅λλ€.
// 1λ°μ΄νΈμΈ boolλ‘ μ μ₯νλ μμ¬(pseudo)μ½λ
bool[] layerList;
foreach(bool i in LayerList){ // bool : 1λ°μ΄νΈ
if(i) Render();
}
νμ§λ§ μ΄λ κ² νλ κ²½μ°, 32κ°μ λ°μ΄ν°λ₯Ό μ μ₯ν λ 32λ°μ΄νΈκ° νμνλ©°, 32κ°μ λΉκ΅μ°μ°μ νκ² λμ΄ λ§€μ° λΆνμνκ² μ°μ°λμ΄ μ»€μ§ μ μμ΅λλ€.
κ·Έλμ μ΄λ₯Ό 2μ§λ²μΌλ‘ νννμ¬ ν¨μ¬ λ νΈλ¦¬νκ² ν¨μ¨μ μΌλ‘ μ²λ¦¬ν μ μμ΅λλ€.
μ¦, νλμ ν° μμ μ¬λ¬ κ°μ 0κ³Ό 1 κ°μ μ μ₯νλ κΈ°λ²μ΄λΌκ³ μκ°νμλ©΄ λ©λλ€.
μ±κΈν€ ν¨ν΄μ ν κ°μ μΈμ€ν΄μ€λ§ μμ±νκ³ , μ΄λμλ κ·Έ μΈμ€ν΄μ€μ μ κ·Όν μ μλ λμμΈ ν¨ν΄μ λλ€.