首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以用一行修改属性的属性吗?

我可以用一行修改属性的属性吗?
EN

Stack Overflow用户
提问于 2019-03-17 08:00:22
回答 1查看 129关注 0票数 0

在统一的时候,我试着做以下几件事;

代码语言:javascript
复制
gameObject1.GetComponent<ParticleSystem>().main.startSize = transform.localScale.x / 5;

上面写着;

无法更改"ParticleSyste.main“的返回值,因为它不是变量。

但如果我试着做以下几件事;

代码语言:javascript
复制
var particleSystemMain = gameObject1.GetComponent<ParticleSystem>().main;
particleSystemMain.startSize = transform.localScale.x / 5;

它起作用了。为什么我不能直接修改属性的属性?

另外,Unity用第二种方式实现了这一点:https://docs.unity3d.com/ScriptReference/ParticleSystem.MainModule-startSize.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-17 08:58:29

当您将main分配给var particleSystemMain时,您实际上得到了它的一个副本。这并不是说这个动作在技术上是不可能的,但是它不会改变你的粒子系统中的主要部分,并且你修改过的副本不会以任何形式保存,所以c#直接禁止它。

See this similar question for a slightly deeper explanation

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55204997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档