在统一的时候,我试着做以下几件事;
gameObject1.GetComponent<ParticleSystem>().main.startSize = transform.localScale.x / 5;上面写着;
无法更改"ParticleSyste.main“的返回值,因为它不是变量。
但如果我试着做以下几件事;
var particleSystemMain = gameObject1.GetComponent<ParticleSystem>().main;
particleSystemMain.startSize = transform.localScale.x / 5;它起作用了。为什么我不能直接修改属性的属性?
另外,Unity用第二种方式实现了这一点:https://docs.unity3d.com/ScriptReference/ParticleSystem.MainModule-startSize.html
发布于 2019-03-17 08:58:29
当您将main分配给var particleSystemMain时,您实际上得到了它的一个副本。这并不是说这个动作在技术上是不可能的,但是它不会改变你的粒子系统中的主要部分,并且你修改过的副本不会以任何形式保存,所以c#直接禁止它。
https://stackoverflow.com/questions/55204997
复制相似问题