今天发生的国际新闻seo到底是什么
ParticleSystem.emission是个只读的属性,在属性的Get访问器中将一个EmissionModule的变量return了出来, 这个EmissionModule是个struct. 值类型.
按理说, ParticleSystem.emission 这个属性返回出来的值类型的变量应该是一个新的struct(因为值类型在return时会被复制一份), 那么为什么第二句中我修改这个返回结果居然有效? 居然可以通过这样在游戏中变更发射状态.
查阅贴吧给出答案:
【智商捉急】ParticleSystem.emission的相关疑惑【unity3d吧】_百度贴吧
//当你获取时:public EmissionModule emission{get{return new EmissionModule(this); //把this保存了}}//部分public struct EmissionModule{private ParticleSystem m_ParticleSystem;internal EmissionModule(ParticleSystem particleSystem){m_ParticleSystem = particleSystem;}public bool enabled{get{return GetEnabled(this.m_ParticleSystem);}set{SetEnabled(this.m_ParticleSystem, value);}}}//当你设定时, 主体的也就是m_ParticleSystem 也就是你或取时传的this 所以能改掉
同样的,起始颜色也可以这样更改。其它属性未测试,应该也可以吧。