所以我試圖在我的一個小太空游戲中添加粒子效果,我得到軸“垂直”,然后檢查它是否大于 0 粒子系統播放(前進)
flyfloat = Input.GetAxis("Vertical");
if(flyfloat > 0)
{
particles.Play();
}
else
{
particles.Stop();
}
這控制它是否正在播放粒子系統,但我遇到的問題是它只給出一些粒子然后停止,我已經查看過flyfloat
它是 1。
這里可能有什么問題?
謝謝
uj5u.com熱心網友回復:
你的問題是不完整的,例如我不知道你在哪里使用這些代碼行......在Update()
方法或Start()
方法中。
假設您在Update()
方法中呼叫它。讓我先解釋一下這里發生了什么錯誤。因此,當您按下UP_Arrow鍵Update()
時,每一幀都會被呼叫。沒關系,但是現在當您進入 if 回圈進行檢查并呼叫它時,每個回圈都意味著每一幀都被呼叫,所以發生的事情是您每幀都在播放,所以根本不播放。同樣,每當您停止按下UP_Arrow鍵時,它就會進入 else 回圈并停止播放.flyfloat = 1
flyfloat > 0
partciles.Play()
Update()
ParticleSystem
flyfloat = 0
ParticleSystem
因此,為了解決這個問題,您可以引入一個布林值,當您按下UP_Arrow鍵時,它會生成partciles.Play()
并被呼叫一次。partciles.Stop()
下面的代碼將在您按下 UP_Arrow 鍵ParticleSystem
時播放,并在您按下DOWN_Arrow鍵時停止播放
public ParticleSystem particles;
public float flyfloat;
bool isParticlePlaying = false;
private void Update()
{
flyfloat = Input.GetAxis("Vertical");
if (flyfloat > 0 && !isParticlePlaying)
{
particles.Play();
isParticlePlaying = true;
}
else if (flyfloat < 0 && isParticlePlaying)
{
particles.Stop();
isParticlePlaying = false;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491130.html