c#委托delegate的使用

原型

//Action原型
namespace System
{
    public delegate void Action();
    public delegate void Action<T1>(T1 arg1);
    public delegate void Action<T1, T2>(T1 arg1, T2 arg2);
    public delegate void Action<T1, T2, T3>(T1 arg1, T2 arg2, T3 arg3);
}

声明、调用

public class BattleFieldManager  {
    //没有参数的回调
    public Action OnInitCallback;
    //一个参数的回调
    public System.Action<GameObject> TouchCallback1;
    //两个参数的回调
    public System.Action<GameObject, BodyModel> TouchCallback2;
    //三个参数的回调
    public System.Action<GameObject, BodyModel, BodyModel> TouchCallback3;


    internal void InitBattleField(int playerIndex)
    {       
        OnInitCallback();
        TouchCallback1(GameObject);
        TouchCallback2(GameObject,BodyModel);
        TouchCallback3(GameObject,BodyModel,BodyModel);
    }
}

设置委托

    private void OnEnable()
    {
        BattleFieldManager.Instance.OnInitCallback += StartSpwan;//侦听StartSpwan函数
    }
    void StartSpwan()
    {
        //开启协程
        Coroutine = StartCoroutine(SpwanSolider());
    }

备注:OnInitCallback += StartSpwan   这里用到“+=”可以委托多个函数,如果直接写“=”就只能委托一个函数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值