C# 粒子系统未通过代码播放

C# 粒子系统未通过代码播放,c#,unity3d,C#,Unity3d,我正在使用此方法,并尝试了其他一些方法,但无法播放粒子系统(即子弹壳) 公共ParticleSystem ParticleSystem; void Start(){ particleSystem=GetComponent(); } 无效更新(){ particleSystem.Play(); } 您必须确保它尚未播放,否则将重置它 void Update(){ 如果(!particleSystem.isplay)particleSystem.Play(); } 不要将播放触发器放在MonoB

我正在使用此方法,并尝试了其他一些方法,但无法播放粒子系统(即子弹壳)

公共ParticleSystem ParticleSystem;
void Start(){
particleSystem=GetComponent();
}
无效更新(){
particleSystem.Play();
} 
您必须确保它尚未播放,否则将重置它

void Update(){
如果(!particleSystem.isplay)particleSystem.Play();
}

不要将播放触发器放在MonoBehavior的Update()中,因为它会在每一帧上调用播放

请尝试以下方法:

public ParticleSystem particleSystem; 
private bool isPlaying = false;

void Start() {
    particleSystem = GetComponent<ParticleSystem>();
    particleSystem.Clear();    // Reset the particles
}

void Update() {
    if(!isPlaying) {
        particleSystem.Play();
        isPlaying = true;
    }
}
公共ParticleSystem ParticleSystem;
私有布尔显示=假;
void Start(){
particleSystem=GetComponent();
particleSystem.Clear();//重置粒子
}
无效更新(){
如果(!显示){
particleSystem.Play();
isplay=true;
}
}
在调用particleSystem.Play()之前使用particleSystem.Clear()也有助于解决粒子问题


停止和播放粒子系统最简单的方法是停用和激活粒子系统游戏对象。为此,,控制脚本必须放在父对象或单独的对象中。

好吧,经过几个小时的麻烦之后,我发现操纵粒子系统的最好方法,即根据自己的意愿激活和取消激活,就是创建一个空的游戏对象,将你制作的粒子系统指定给它,然后在游戏中的哪个部分打开和关闭这个游戏对象要通过setActivce命令执行的代码。我希望它能在某种程度上帮助某些人

仍然无法使用idk有什么问题我的脚本和粒子系统在同一个游戏对象上,但仍然无法玩…..如果我从场景视图进行刺激,但无法通过代码玩游戏如果我使用“唤醒时玩”,它也会在游戏运行时通过代码玩但无法玩,统一检查员是否说分词系统正在播放?也,是否有任何错误/异常打印到日志中?通过将其放在游戏对象上并激活和停用游戏对象,问题得到了解决,但非常感谢您没有使用idk。问题是什么?我的脚本和粒子系统在同一个游戏对象上,但仍然没有播放……如果我从场景视图进行刺激,它将播放但不通过代码播放如果我使用“唤醒时播放”,它也会播放但不通过代码播放播放在播放之前重置粒子的另一种方法是先将其禁用。要执行此操作,请将脚本放在父对象上,并让脚本停用粒子系统对象以停止,激活游戏。是的,这是解决方案,谢谢…………好吧,经过几个小时的麻烦之后,我发现操纵粒子系统的最佳方法,即根据你的意愿激活和取消激活,就是创建一个空的游戏对象,将你制作的粒子系统指定给它,然后在代码中的哪个部分打开和关闭这个游戏对象通过setActivce命令。我希望它能在某些方面帮助别人
public ParticleSystem particleSystem; 
private bool isPlaying = false;

void Start() {
    particleSystem = GetComponent<ParticleSystem>();
    particleSystem.Clear();    // Reset the particles
}

void Update() {
    if(!isPlaying) {
        particleSystem.Play();
        isPlaying = true;
    }
}