λ³΄ν΅ μ΄λ³΄ κ²μ κ°λ°μλ€μ΄ μ λν°μμ C#μ μ¬μ©νλ€κ° νλ² μ€μ ν΄λμ μ€μ λ€μ λμ΄λ€ μ°λ €κ³ μ νκ² λλ λμμΈ ν¨ν΄μ΄λΌκ³ λ³Ό μ μλ€.(λ³ΈμΈ κ²½νλ΄..)
μ΅κ·Ό λ©΄μ μμ μ±κΈν€κ³Ό μ μλ³μμ μ°¨μ΄μ μ λν΄ μ λλ‘ λλ΅νμ§ λͺ»νμκΈ°λλ¬Έμ λΈλ‘κ·Έλ‘ νλ² μ λλ‘ μ 리ν΄λ³΄λ €κ³ νλ€.
μ±κΈν€μ΄λ μ ν리μΌμ΄μ μ΄ μμλ λ μ΄λ€ ν΄λμ€κ° μ΅μ΄λ‘ νλ²λ§ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκ³ κ·Έ λ©λͺ¨λ¦¬μ μΈμ€ν΄μ€λ₯Ό λ§λ€μ΄ μ¬μ©νλ λμμΈ ν¨ν΄μ΄λ€.
μ±κΈν€κ³Ό μ μλ³μλ μ΅μ΄λ‘ νλ²λ§ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκ³ κ·Έ μμμ λμ΄λ€ μ΄λ€λ μ μμ λΉμ·νλ° λμ μ°¨μ΄μ μ΄ μλ€.
μ±κΈν€ ν¨ν΄κ³Ό μ μλ³μμ μ°¨μ΄μ
1. μμ±μμ
μ μλ³μλ μ ν리μΌμ΄μ μ΄ μ€νλ λ μμ±
μ±κΈν€ ν¨ν΄μ ν΄λΉ ν¨μκ° initializeλλ©΄μ μμ±
2. μμν λΉ
μ μ λ³μλ μμμ μμ΄ μμ²λκ² ν¬λ€κ³ κ°μ ν¨(νΉμ μμ μμλ§ μ¬μ©λλ€λ©΄ μμ²λ λλΉ)
μ±ν΄ν€ ν¨ν΄μ μ¬μ©ν λ μμμ ν λΉνκ³ μμ μ΄ μν λ μμμ ν΄μ κ°λ₯
μ±κΈν€ ν¨ν΄μ λ¨μ
- μμμ΄ λΆκ°λ₯(private μμ±μλ₯Ό κ°μ§κΈ° λλ¬Έ)
- μνλ₯Ό κ°μ§ κ°μ²΄λ₯Ό μ±κΈν€μΌλ‘ λ§λ€λ©΄ μλ¨(μνκ° κ³΅μ λλ€λ κ²μ λ§€μ° μνν¨, μ μΌν΄μΌνλ μ»΄ν¬λνΈλ₯Ό μ±κΈν€μΌλ‘ λ§λ€μ΄μΌν¨)
- μ±κΈν€μ μ¬μ©νλ κ³³κ³Ό μ±κΈν€ ν΄λμ€ μ¬μ΄μ μμ‘΄μ±μ΄ μκΈ°κ² λμ κ²°ν©λκ° λμμ Έμ μμ λ° λ¨μν μ€νΈμ μ΄λ €μμ΄ μκΈ°κ² λ¨
- μ μ μνλ₯Ό κ°λ κ²μ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μμ μ§μλμ΄μΌ ν λͺ¨λΈ(μμ κ°μ΄ κ²°ν©λκ° λμμ§κΈ° λλ¬Έ)
- λ©ν°μ°λ λ νκ²½μμ μΈμ€ν΄μ€κ° λκ° μμ±λλ κ²½μ°κ° λ°μν μ μμ
Unity C#μμ μ°λ ν¨ν΄μ λ€μκ³Ό κ°λ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
public class manager : MonoBehaviour
{
//instanceλ₯Ό staticμΌλ‘ μ μΈ
private static manager instance = null;
//μ λν°μμλ νλ‘κ·Έλ¨μ΄ μμλ λ initialization λΆλΆμμ μ μΌ λ¨Όμ μ€νλλ ν¨μ
void Awake(){
//λ§μ½ instanceκ° λΉμ΄μμ λ
if(instance==null){
instance=this;
}
}
//λ€λ₯Έ ν΄λμ€μμ νΈμΆν μ μλλ‘ static νλ‘νΌν° μ μΈ
//νλ‘νΌν° : νλ(λ°μ΄ν° λ©€λ²)μ λ©μλ κ° κΈ°λ₯μ μ€κ°μΈ ν΄λμ€ λ©€λ²μ νΉμν μ ν
public static manager Instance
{
get
{
if (null == instance)
{
return null;
}
return instance;
}
}
}
|
cs |
'κ³΅λΆ > Design Pattern' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ΄λ²€νΈ ν ν¨ν΄ (Event Queue Pattern) (0) | 2024.12.29 |
---|