繁体   English   中英

Unity 3D粒子系统雪景效果

[英]Unity 3D Particle System Snow effect

在统一3D中,Im建立了一个2D运行器,在其中创建了一个粒子系统,该粒子系统从屏幕外主摄像头右上角的单个位置发出像粒子一样的雪。

我将粒子发射器连接到主摄像头,因此屏幕上总会像雪一样下雪,但是,随着主摄像头速度的提高,粒子发射器的速度也随之增加,最终开始从屏幕外发射粒子。

如何更改发射器的设置,以使发射器的速度不影响粒子的方向。 最后,有关更多详细信息,我将发射器的形状设置为圆锥形,将模拟空间设置为世界。 任何帮助将非常感激

你可以改变你的粒子系统组件的模拟空间设置: 粒子系统主要模块

编辑由于我起初没有注意到,您希望粒子速度随着相机的加速而增加(我的糟糕……),这是一种您可以伪造效果的方法:

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个增量的平均速度值,或者直接向脚本发送应用到相机的移动量(如果您手动移动它),而不是仅基于最新的帧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM