using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour{
// delegate 선언(여러 함수를 등록하고 한번에 호출시켜 버림)
public delegate void ChainFunction(int value);
ChainFunction chain;
int power;
int defence;
public void SetPower(int value){
power += value;
}
public void SetDefence(int value){
defence += value;
}
void Start(){
chain += SetPower; // 함수추가
chain += SetDefence;
chain(5);
chain -= SetPower; // 함수 빼기
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class event1 : MonoBehaviour{
public delegate void ChainFunction(int value);
public static event ChainFunction OnStart; // static으로 선언했기 때문에 다른 스크립트에서 여기에 함수를 등록시킬 수 있다.
int power;
int defence;
public void SetPower(int value){
power += value;
}
public void SetDefence(int value){
defence += value;
}
void Start(){
OnStart += SetPower; // 함수추가
OnStart += SetDefence;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class event2 : MonoBehaviour{
void Start(){
// static으로 event를 선언했기 때문에 그냥 함수등록 가능
event1.OnStart += Abc;
}
public void Abc(int value)
{
print("함수를 등록했습니다");
}
}