版本: Unity 6 (6000.0)
语言英语
  • C#

ParticleSystem.Play

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们会阅读用户提出的每个建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void Play();

声明

public void Play(bool withChildren = true);

参数

withChildren 也播放所有子粒子系统。

描述

启动粒子系统。

将粒子系统设置为播放模式并启用发射(如果它已禁用)。

如果粒子系统已暂停,则从上次时间恢复播放。
如果粒子系统已停止,则系统从时间 0 开始,如果相关,则应用 startDelay。如果粒子系统正在播放,则系统继续播放,此函数无效。

**注意**: 当粒子系统从暂停状态恢复时,Unity 不会应用 ParticleSystem.MainModule.prewarm。要应用 `prewarm` 在粒子系统恢复时,请在调用 Stop 后调用 Clear

其他资源: StopPauseisEmitting 函数。

以下示例创建了一个用于操作粒子系统的 GUI 窗口。

using UnityEngine;

public class ParticleSystemControllerWindow : MonoBehaviour { ParticleSystem system { get { if (_CachedSystem == null) _CachedSystem = GetComponent<ParticleSystem>(); return _CachedSystem; } } private ParticleSystem _CachedSystem;

public Rect windowRect = new Rect(0, 0, 300, 120);

public bool includeChildren = true;

void OnGUI() { windowRect = GUI.Window("ParticleController".GetHashCode(), windowRect, DrawWindowContents, system.name); }

void DrawWindowContents(int windowId) { if (system) { GUILayout.BeginHorizontal(); GUILayout.Toggle(system.isPlaying, "Playing"); GUILayout.Toggle(system.isEmitting, "Emitting"); GUILayout.Toggle(system.isPaused, "Paused"); GUILayout.EndHorizontal();

GUILayout.BeginHorizontal(); if (GUILayout.Button("Play")) system.Play(includeChildren); if (GUILayout.Button("Pause")) system.Pause(includeChildren); if (GUILayout.Button("Stop Emitting")) system.Stop(includeChildren, ParticleSystemStopBehavior.StopEmitting); if (GUILayout.Button("Stop & Clear")) system.Stop(includeChildren, ParticleSystemStopBehavior.StopEmittingAndClear); GUILayout.EndHorizontal();

includeChildren = GUILayout.Toggle(includeChildren, "Include Children");

GUILayout.BeginHorizontal(); GUILayout.Label("Time(" + system.time + ")"); GUILayout.Label("Particle Count(" + system.particleCount + ")"); GUILayout.EndHorizontal(); } else GUILayout.Label("No Particle System found");

GUI.DragWindow(); } }