簡體   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