하나의 클래스에 있는 함수들을 추가 한번에 호출
public delegate void ChainFunction(int value);
ChainFunction chain;
int power;
int defence;
public void SetPower(int value)
{
power += value;
print("power의 값이" + value + "만큼 증가했습니다. 총 power의 값 = " + power);
}
public void SetDefence(int value)
{
defence += value;
print("defence의 값이" + value + "만큼 증가했습니다. 총 defence의 값 =" + defence);
}
void Start() {
chain += SetPower;
chain += SetDefence;
// ' += '을 사용하면 함수가 델리게이트에 추가가 된다. 하지만 ' = ' 사용 시 추가된 함수는 사라지고, 우항에 있는 함수만 적용된다.
chain(5);
}
test.cs
다른 모든 클래스에 대해서 함수를 추가시키고 호출가능
public delegate void ChainFunction(int value);
public static event ChainFunction OnStart;
ChainFunction chain;
int power;
int defence;
public void SetPower(int value)
{
power += value;
print("power의 값이" + value + "만큼 증가했습니다. 총 power의 값 = " + power);
}
public void SetDefence(int value)
{
defence += value;
print("defence의 값이" + value + "만큼 증가했습니다. 총 defence의 값 =" + defence);
}
void Start() {
OnStart += SetPower;
OnStart += SetDefence;
// ' += '을 사용하면 함수가 델리게이트에 추가가 된다. 하지만 ' = ' 사용 시 추가된 함수는 사라지고, 우항에 있는 함수만 적용된다.
chain(5);
}
test2.cs
void Start() {
Test.OnStart += Abc
}
public void Abc(int value)
{
print(value + "값 증가");
}