【Unity3D】Delegate

来源:互联网 发布:微谱数据库怎么检索 编辑:程序博客网 时间:2024/05/22 04:06
1.普通代理
   
public delegate void Delegate (int num);
    public event Delegate my_delegate ;
    void Start(){
        my_delegate =A.Add;
        my_delegate +=B.Sub;
      
//或者my_delegate = newDelegate(B.Sub);
  }

    void Update(){
        if(Input.GetKeyDown(KeyCode.Space)){
            my_delegate(1);
        }
    }

public classA
{
   
publicvoid Add(int num){
        print("Add"+num+"");
    }

}
public classB
{
   

 public
void Sub(int num){
        print("Sub"+num+"");
    }
}

2.泛型带返回值代理
public delegateboolDelegate(Taugument);
void Start(){
      
Delegate<int>_delegate1 = Add;
 
     Delegate<string>_delegate2 = Add;
      bool de1IsNum =  _delegate1(1);
  bool de2IsNum =  _delegate2("Word");
  }

public
boolAdd(int num){
        print("Add"+num+"");
   boolisNumber =true
    }

publicboolAdd(stringword){
        print("Add"+
word);
   
boolisNumber =false
 
}
0 0
原创粉丝点击