【问题标题】:Unity 3D Particle System Snow effectUnity 3D粒子系统雪效果
【发布时间】:2016-10-28 22:05:37
【问题描述】:

在 unity 3D 中,我构建了一个 2d 跑步者,我在其中创建了一个粒子系统,该系统从屏幕外主摄像机右上角的单个位置发射雪状粒子。

我将粒子发射器连接到主摄像机,因此屏幕上总是有雪状粒子,但是,随着主摄像机速度的增加,粒子发射器的速度也会增加,最终开始将粒子发射到屏幕外。

如何更改发射器的设置,以使发射器的速度不会影响粒子的方向。最后,为了获得更多细节,我将发射器的形状设置为圆锥体,并将模拟空间设置为世界。任何帮助将不胜感激

【问题讨论】:

    标签: c# unity3d game-engine particle-system


    【解决方案1】:

    您可以更改 ParticleSystem 组件的 Simulation Space 设置:Particle System main module

    编辑 因为我一开始没有注意到你希望粒子速度随着相机的加速而增加(我的错......)这是一种你可以伪造效果的方法:

    public class TestScript : MonoBehaviour
    {
        #region Attributes
        [SerializeField]
        private float m_MaxTransformSpeed;
    
        [SerializeField]
        private float m_MinStartSpeed;
        [SerializeField]
        private float m_MaxStartSpeed;
    
        private ParticleSystem m_Particles;
        private Vector3 m_PreviousPosition;
        #endregion
    
        #region MonoBehaviour
        protected void Start()
        {
            m_Particles = GetComponent<ParticleSystem>();
        }
    
        protected void Update()
        {
            Vector3 cameraSpeed = transform.position - m_PreviousPosition;
            m_Particles.startSpeed = Mathf.Clamp(m_MinStartSpeed + (m_MaxStartSpeed - m_MinStartSpeed) * cameraSpeed.magnitude / m_MaxTransformSpeed, m_MinStartSpeed, m_MaxStartSpeed);
            m_PreviousPosition = transform.position;
        }
        #endregion
    }
    

    您可以保存 N 个较旧的位置并获得 N 个增量的平均速度值,或者直接向脚本发送相机如果你手动移动它。

    【讨论】:

    • 我已经将模拟空间更改为世界,所做的只是不会导致粒子始终在相机中移动。我的问题是,随着发射器移动速度的增加,粒子开始受到速度的影响,并以从屏幕右上角到屏幕左上角的流向相机顶部发射。当发射器不动时,它看起来像雪。从屏幕的右上角落到底部。即使相机在移动,我也想模拟这种行为。
    • @pretzo246 我刚刚尝试了一个空场景,一个移动的 Camera 和一个“雪” ParticleSystem 作为相机的孩子:它的工作原理是故意的。 HereSimulation Space 属性的 World 设置的结果,hereLocal 的结果。
    • 我觉得本地设置更适合那种场景,就像世界设置一样,当发射器的速度增加时,你看到粒子是如何慢慢开始出现在屏幕外的吗?我想要的是让粒子继续在屏幕上生成,而不是慢慢开始在屏幕外生成。
    • 好吧,我的错,一开始我没有明白你希望雪随着时间的推移实际上移动得更快:我会编辑我的答案来帮助你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多