A๋ผ๋Š” ๋งค๋‹ˆ์ € ํด๋ž˜์Šค๊ฐ€ ์žˆ๊ณ , B๋ผ๋Š” ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ

A์—์„œ space bar ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด B์— ์žˆ๋Š” B_Number ๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ Aํด๋ž˜์Šค์˜ ์˜ A_Number ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ ์‹œํ‚ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์ง€๊ธˆ ๋Œ€๋ฆฌ์ž ์ด๋ฒคํŠธ๋ฅผ ์ž˜์€ ๋ชจ๋ฅด์ง€๋งŒ ์ง€๊ธˆ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ๋Š” Bํด๋ž˜์Šค์— ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  OnEnable, OnDisable์— ๋“ฑ๋ก ๋ฐ ํ•ด์ œ๋งŒ ํ•˜๊ณ ,ย A ๋งค๋‹ˆ์ €ํด๋ž˜์Šค์—์„œ ์ด๋ฒคํŠธ ํ˜ธ์ถœ์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ์š”.

์ด๊ฑฐ๋ฅผ Bํด๋ž˜์Šค์—์„œ ํ•จ์ˆ˜๋ฅผ ์•ˆ๋งŒ๋“ค๊ณ  A๋งค๋‹ˆ์ € ํด๋ž˜์Šค์—์„œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ B์—์„œ ๋“ฑ๋ก ๋ฐ ํ•ด์ œ๋งŒ ํ•ด์„œ ์ด๋ฒคํŠธ๋ฅผ ํ˜ธ์ถœ
ํ•  ์ˆ˜๋Š” ์—†์„๊นŒ์š”??


//////////////////// ํ˜„์žฌ ์“ฐ๊ณ  ์žˆ๋Š” ๋ฐฉ๋ฒ•

Class A ย  (๋งค๋‹ˆ์ €ํด๋ž˜์Šค ์‹ฑํดํ†ค)

public int A_Number = 5;

public delegate void Del();
public event Del Evt;

Start(){ย  // ์ŠคํŽ˜์ด์Šค๋ฐ” ๋ˆ„๋ฅด๋ฉด ์ด๋ฒคํŠธ ๋ฐœ์ƒ

if(input.getkeydown(keycode.space)) Evt();

}ย 



Class B

public int B_Number = 0;


Start(){

B_Number = Random.Range(0,10); // 0 ~9 ๊นŒ์ง€์˜ ๋žœ๋ค ๊ฐ’

}


OnEnable(){

ย  A.Instance.Evt += Func;

}

OnDisable(){

ย  A.Instance.Evt -= Func;

}

void Func(){

ย B_Number = A.Instance.A_Number;

}

//////////////////////////


์ด๋ ‡๊ฒŒ Bํด๋ž˜์Šค์˜ Func๋ฅผ ์•ˆ๋งŒ๋“ค๊ณ  Aํด๋ž˜์Šค์—์„œ Func๋ฅผ ๋งŒ๋“ค๊ฒฝ์šฐ Bํด๋ž˜์Šค์˜ B_Number ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ๋„˜๊ฒจ์ฃผ๋‚˜์š”??

-> Bํด๋ž˜์Šค์˜ OnEnable ์€ ์ผ๋‹จ A.Instance.Evt += A.Instance.Func; ๋กœ ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค.
-> Bํด๋ž˜์Šค๋ฅผ ์ปดํผ๋„ŒํŠธ๋กœ ๊ฐ€์ง„ ์˜ค๋ธŒ์ ํŠธ๋Š” ์—ฌ๋Ÿฌ๊ฐœ ์กด์žฌํ•˜๋ฉฐ, A ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค