2016-10-28 63 views
0

在統一3D內,我建立了一個2d跑步者,我在其中創建了一個粒子系統,可以在主相機屏幕右上角的單個位置發射像粒子一樣的積雪。團結3D粒子系統雪效

我將粒子發射器連接到主攝像頭,所以它們總是像屏幕上的粒子一樣下雪,但是,隨着主攝像頭的速度增加,粒子發射器的速度也隨之增加,最終開始將粒子發射出屏幕。

如何更改發射器的設置,使發射器的速度不會影響粒子的方向。最後,我將發射器的形狀設置爲一個圓錐體,並將仿真空間設置爲世界。任何幫助,將不勝感激

回答

1

可以更改模擬太空設置你的粒子系統組件: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 
} 

而不是被僅基於最新的框架,你可以節省ň舊的位置,並獲得ñ三角洲平均速度值或直接移動的應用量腳本發送到您的CAMER如果您手動移動它,則爲

+0

我已經將模擬空間更改爲世界已經存在,所做的一切都不會導致粒子始終移動到相機中。我的問題是,隨着發射器移動速度的增加,粒子開始受到速度的影響,並從屏幕右上角流向屏幕左上角,朝向相機頂部發射。當發射器不移動時,它看起來像雪。從屏幕右上角落到底部。即使攝像機正在移動,我也想模擬這種行爲。 – pretzo246

+0

@ pretzo246我剛剛嘗試過一個空的場景,一個移動的_Camera_和一個「雪」_ParticleSystem_作爲攝像頭的孩子:它按預期工作。 [Here](http://i.giphy.com/l0HlMstNcGK2bCFri.gif)是** Simulation Space **屬性和[這裏]的_World_設置的結果(http://i.giphy.com/3oz8xP1je4r78JsCOs .gif)的_Local_。 – Kardux

+0

我覺得在本場景中本地設置更適合,與世界設置一樣,您看到了粒子在發射器速度增加時如何緩慢開始出現在屏幕外的情況?我想要的是粒子繼續在屏幕上生成,而不是在屏幕外緩慢開始生成。 – pretzo246