我们可以通过在Method或property上指定的C#属性来进行事件发布和订阅吗?
如果属性被更改..那么我们需要发起一个事件......
[FirePropertyChangedEvent]
SomeProperty
答案 0 :(得分:0)
我已经回答了一个类似的问题,所以我的回答很糟糕:
假设您正在使用本地“速度”变量,每次更新主“速度”变量时都需要更新...
public class SpeedHolder
{
private float _speed;
public event Action<float> OnSpeedChange;
public float Speed
{
get { return _speed; }
set { SetSpeed(value); }
}
public SetSpeed(float value)
{
_speed = value;
if(OnSpeedChange != null)
OnSpeedChange(_speed);
}
}
现在在使用speed float变量的每个脚本的每个'constructor'方法中,你需要添加这一行:SpeedHolder.OnSpeedChange += ChangeSpeed;
并有一个像这样的方法:
public void ChangeSpeed(value)
{
speed = value;
}