粒子系统在gui按钮上播放一次?

时间:2015-08-11 14:26:32

标签: c# unity3d

我成功用gui按钮玩粒子系统,但是我发现了新问题,当我的粒子系统(Pa是我的粒子系统1)播放时,我再次按下gui按钮Pa将再次播放,我想当我按下gui按钮,Pa播放,但是当我再按它时,pa不播放。怎么做?这是我的剧本。

import numpy as np
import pandas as pd

DC = np.random.randn(3, 3)
df = pd.DataFrame(np.random.randn(1000, 10))
df2 = df.copy()
df[[4,5,6]] = np.dot(DC, df[[4,5,6]].values.T).T

def rotate(vector):
        return np.dot(DC, vector)
df2[[4,5,6]] = df2[[4,5,6]].apply(rotate, axis='columns')
df.equals(df2)

1 个答案:

答案 0 :(得分:0)

请注意,OnGUI会调用每一帧,因此每帧都会调用if-statemenet来检查按钮是否被按下。

现在,正如Bart评论的那样,您应该只存储一个布尔变量,以检查粒子是否已经播放,或者您可以使用粒子系统内部实现的isPlaying var。

所以你的代码应该是这样的:

void OnGUI(){
if(GUI.Button(new Rect(8*Screen.width/10 ,Screen.height/10, Screen.width/10,Screen.height/10),"Play")){
    if(!Pa.isPlaying)
       Pa.Play();
    else
       Pa.Stop();
    if(!Pa2.isPlaying)
       Pa2.Play();
    else
       Pa2.Stop();
  }
}

有关如何使用粒子系统的更多参考,您可以在此处查看: two