using UnityEngine;
using UnityEditor;
[ExecuteInEditMode]
public class MyWindow : EditorWindow
{
private GameObject _curEffect;
private float _curValue = 0;
private float _preTime;
private bool _isRun;
private float _totalTime = 3.0f;
private ParticleSystem[] _psList = null;
[MenuItem("Window/My Window")]
static void Init()
{
MyWindow window = (MyWindow)EditorWindow.GetWindow(typeof(MyWindow));
window.Show();
}
void OnEnable()
{
_preTime = Time.realtimeSinceStartup;
EditorApplication.update += EditorUpdate;
}
void Disable()
{
EditorApplication.update -= EditorUpdate;
}
void OnGUI()
{
GameObject obj = EditorGUILayout.ObjectField("object", _curEffect, typeof(GameObject)) as GameObject;
if (obj != _curEffect)
{
_curEffect = obj;
if (_curEffect != null)
{
_psList = _curEffect.GetComponentsInChildren<ParticleSystem>(true);
}
else
{
_psList = null;
}
}
float value = EditorGUILayout.Slider("value", _curValue, 0, _totalTime);
if (value != _curValue)
{
_curValue = value;
foreach (ParticleSystem ps in _psList)
{
ps.Simulate(0, false, true);
ps.time = 0;
ps.Play();
}
for (float i = 0.0f; i < _c
模拟粒子系统(ParticleSystem.Simulate)
最新推荐文章于 2022-09-27 14:09:28 发布