如何在类中保存方法以便稍后执行

时间:2016-08-24 04:02:42

标签: c# unity3d methods

我需要知道如何将方法传递给类构造函数,以便以后可以调用它。我们的想法是让一个Bullet类具有两个属性,一个损坏整数和一个可以在该类型的子弹击中一个对象时调用的方法。下面的代码应该更好地解释一下:

public class Bullet
{
    public Method OnHit;
    public int Damage;
    public Bullet(int Damage,Method OnHit)
    {
        this.Damage = Damage;
        this.OnHit = OnHit;
    }
}

这样我可以通过运行Bullet.OnHit(HitGameObject)之类的东西来制作可以在影响时执行不同任务的项目符号。

1 个答案:

答案 0 :(得分:0)

您需要的是c#中的代理人, 首先,您应该定义方法输入/输出,然后使用此类型的方法,就像变量一样。

public class Bullet
{
public delegate void OnHit(bool something);
public OnHit onHitMethod;
public int Damage;
public Bullet(int Damage, OnHit OnHit)
{
    this.Damage = Damage;
    this.onHitMethod = OnHit;
}
}

在这一行public delegate void OnHit(bool something);中你刚刚定义了委托的类型,在这一行public OnHit onHitMethod;中你就像变量一样定义了方法。