π μ¬ κ΄λ¦¬μ λ©λͺ¨λ¦¬ μ΅μ ν – κ²μ μ±λ₯ μμ ν μ λ΅
κ²μμμ ν μ¬(Scene) μμ λ무 λ§μ μ€λΈμ νΈκ° μκ±°λ, μ¬λ¬ μ¬μ μμ£Ό μ ννλ©΄ λ©λͺ¨λ¦¬ μ¬μ©λ μ¦κ°μ νλ μ μ νκ° λ°μν μ μλ€.
μ΄λ² κΈμμλ μ¬ κ΄λ¦¬ λ°©λ²κ³Ό λ©λͺ¨λ¦¬ μ΅μ ν μ λ΅μ Unity μ€μ¬μΌλ‘ μ΄ν΄λ³΄κ² λ€.
1. μ¬(Scene) κ΄λ¦¬λ?
-
μ¬(Scene): κ²μμ ν νλ©΄, λ 벨, νκ²½ λ¨μλ₯Ό μλ―Έ
-
μ¬ μ ν μ κΈ°μ‘΄ μ¬μ μ€λΈμ νΈλ₯Ό μ 리νκ³ μλ‘μ΄ μ¬ λ‘λ
-
μλͺ»λ μ¬ κ΄λ¦¬ → λ©λͺ¨λ¦¬ λμ(Memory Leak) λ°μ κ°λ₯
2. μ¬ μ ν λ°©λ²
-
λ¨μΌ μ¬ μ ν
-
κΈ°μ‘΄ μ¬ μμ ν μ μ¬ λ‘λ
-
μ₯μ : λ©λͺ¨λ¦¬ μ΄κΈ°ν
-
λ¨μ : μ ν μ λ‘λ© μκ° λ°μ
-
λ©ν° μ¬ λ‘λ©(Additive)
-
μ¬λ¬ μ¬μ λμμ μ μ§ κ°λ₯
-
μ₯μ : UI, λ°°κ²½, λ 벨 μ¬ λΆλ¦¬ → μ μ°ν κ΄λ¦¬
-
λ¨μ : λΆνμν μ€λΈμ νΈ μ μ§ μ λ©λͺ¨λ¦¬ μ¦κ°
3. λ©λͺ¨λ¦¬ μ΅μ ν μ λ΅
-
λΆνμν μ€λΈμ νΈ μ κ±°: μ¬ μ ν μ μ¬μ© μ νλ μ€λΈμ νΈ Destroy
-
Resources.Load μ΅μν: 미리 λ‘λ λλ AssetBundle μ¬μ©
-
Object Pooling νμ©: μμ£Ό μ¬μ©νλ μ€λΈμ νΈ μ¬μ¬μ© → Instantiate/Destroy κ°μ
4. μ€μ ν
-
μ¬ λ‘λ© μ€ Async λ°©μ νμ© → λ‘λ© νλ©΄ + λκΉ λ°©μ§
-
μ¬ κ΅¬μ‘° μ€κ³: UI, λ°°κ²½, κ²μνλ μ΄ μ¬ λΆλ¦¬ → κ΄λ¦¬ μ©μ΄
-
λ©λͺ¨λ¦¬ λͺ¨λν°λ§: Profiler μ¬μ© → λμ, κ³Όλ€ μ¬μ© 체ν¬
5. λ§λ¬΄λ¦¬
μ¬ κ΄λ¦¬μ λ©λͺ¨λ¦¬ μ΅μ νλ κ²μ μ±λ₯ μμ νμ νμ λ¨κ³μ΄λ€.
-
μ μ ν μ¬ λΆλ¦¬ → μ½λ κ°λ μ±, μ μ§λ³΄μ ↑
-
λΆνμν λ©λͺ¨λ¦¬ μ κ±° → FPS μμ ν
-
Object Pooling + Async λ‘λ© → λκ·λͺ¨ μ¬λ λΆλλ½κ² μ€ν
π λ€μ κΈμμλ RPC(Remote Procedure Call)μ λ€νΈμν¬ κ²μ κΈ°μ΄λ₯Ό λ€λ€, λ©ν°νλ μ΄μ΄ νκ²½μμλ μμ μ μΈ κ²μ λμμ ꡬννλ λ°©λ²μ μμλ³΄κ² λ€.
λκΈ
λκΈ μ°κΈ°