Unity修改粒子参数

更新时间:2023-07-22 19:41:30 阅读: 评论:0

Unity修改粒⼦参数
Unity新版本的粒⼦代码框架更改过,之前的很多api是不能⽤的。
新版本的粒⼦效果把整个数据分成了⼏⼤模块,每个模块是⼀个struct
public struct MainModule
{
public float duration { get; t; }
public float startRotationXMultiplier { get; t; }
public MinMaxCurve startRotationY { get; t; }
public float startRotationYMultiplier { get; t; }.
public MinMaxCurve startRotationZ { get; t; }
public float startRotationZMultiplier { get; t; }
public float flipRotation { get; t; }
public MinMaxGradient startColor { get; t; }
public MinMaxCurve gravityModifier { get; t; }
public float gravityModifierMultiplier { get; t; }
public ParticleSystemSimulationSpace simulationSpace { get; t; }
public Transform customSimulationSpace { get; t; }
public float simulationSpeed { get; t; }
public bool uUnscaledTime { get; t; }
交通综合执法public ParticleSystemScalingMode scalingMode { get; t; }
public bool playOnAwake { get; t; }
public int maxParticles { get; t; }
public ParticleSystemEmitterVelocityMode emitterVelocityMode { get; t; }
public MinMaxCurve startRotationX { get; t; }
public ParticleSystemStopAction stopAction { get; t; }
public float startRotationMultiplier { get; t; }
public bool startRotation3D { get; t; }
public bool loop { get; t; }
public bool prewarm { get; t; }
public float startDelayMultiplier { get; t; }
public MinMaxCurve startLifetime { get; t; }
public float startLifetimeMultiplier { get; t; }
public MinMaxCurve startSpeed { get; t; }
自叹弗如注意安全的句子
public float startSpeedMultiplier { get; t; }
public bool startSize3D { get; t; }
public MinMaxCurve startSize { get; t; }
public float startSizeMultiplier { get; t; }
public MinMaxCurve startSizeX { get; t; }
不禁造句public float startSizeXMultiplier { get; t; }
征兵工作public MinMaxCurve startSizeY { get; t; }
public float startSizeYMultiplier { get; t; }
public MinMaxCurve startSizeZ { get; t; }
public float startSizeZMultiplier { get; t; }
public MinMaxCurve startRotation { get; t; }
[Obsolete("Plea u flipRotation instead. (UnityUpgradable) -> UnityEngine.ParticleSystem/MainModule.flipRotation", fal)]            public float randomizeRotationDirection { get; t; }
}
这是MainModule的代码,主要是修改粒⼦修过最上⾯部分。ParticleSystem中有main字段是保存MainModule数据的。然后今天看⽹上说修改⽅式
ParticleSystem.MainModule main = m_particle.main;
main.duration = tting.duration;
main.loop = fal;
当时觉得不可能这样修改,但是测试后确实可以。为什么觉得不可能呢?因为MainModule是值类型,你修改main的值,是不可能影响到ParticleSystem中的main的。
于是就查看了MainModule源码,截取部分:
public struct MainModule
{
三年级数学应用题100道草莓沙拉private ParticleSystem m_ParticleSystem;
public float duration
{
get
{
return ParticleSystem.MainModule.GetDuration(this.m_ParticleSystem);
}
t
{
ParticleSystem.MainModule.SetDuration(this.m_ParticleSystem, value);
}
}
public bool loop
{
get
{芒果英语怎么说
return ParticleSystem.MainModule.GetLoop(this.m_ParticleSystem);
}
t
{
ParticleSystem.MainModule.SetLoop(this.m_ParticleSystem, value);
}
}
}
看这个应该就明⽩了,每个Module中应该都保存了ParticleSystem 。然后t⽅法中,通过ParticleSystem修改的,因为ParticleSystem是引⽤类型,因此这样修改就应⽤到ParticleSystem中了
最后补充⼀句    ParticleSystem.main.loop = fale; 这种写法是不⾏的,值类型是不允许这样修改的, ParticleSystem.main通过get返回的是值类型,修改是不影响ParticleSystem.main的,因此这种⽅法被编译禁⽌,会报错的

本文发布于:2023-07-22 19:41:30,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1111382.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:修改   类型   数据
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图