Files
Continentis/Assets/OtherPlugins/Kamgam/UGUIParticles/Scripts/EditorParticleSystemEffectUtils.cs
SoulliesOfficial 9b1b5ca93f initial
2025-10-03 00:02:43 -04:00

66 lines
2.4 KiB
C#

#if UNITY_EDITOR
using System;
using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
using UnityEngine;
namespace Kamgam.UGUIParticles
{
public static class EditorParticleSystemEffectUtils
{
public static Type _editorUtils = typeof(UnityEditor.EditorUtility).Assembly.GetType("UnityEditor.ParticleSystemEditorUtils");
public static Type _effectUtils = typeof(UnityEditor.EditorUtility).Assembly.GetType("UnityEditor.ParticleSystemEffectUtils");
public static bool IsSupported()
{
return _editorUtils != null && _effectUtils != null;
}
public static void Play()
{
if (_editorUtils != null)
{
var playbackIsScrubbing = _editorUtils.GetProperty("playbackIsScrubbing", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public);
if (playbackIsScrubbing != null)
playbackIsScrubbing.SetValue(null, false);
var playbackTime = _editorUtils.GetProperty("playbackTime", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public);
if (playbackTime != null)
playbackTime.SetValue(null, 0f);
}
if (_effectUtils != null)
{
var startEffect = _effectUtils.GetMethod("StartEffect", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public);
if (startEffect != null)
startEffect.Invoke(null, null);
}
}
public static void Stop()
{
if (_editorUtils != null)
{
var playbackIsScrubbing = _editorUtils.GetProperty("playbackIsScrubbing", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public);
if (playbackIsScrubbing != null)
playbackIsScrubbing.SetValue(null, false);
var playbackTime = _editorUtils.GetProperty("playbackTime", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public);
if (playbackTime != null)
playbackTime.SetValue(null, 0f);
}
if (_effectUtils != null)
{
var stopEffect = _effectUtils.GetMethod("StopEffect", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public);
if (stopEffect != null)
stopEffect.Invoke(null, null);
}
}
}
}
#endif