refactor: update coffee.internal
parent
2b3cec69ac
commit
2a66393cb0
|
@ -134,6 +134,35 @@ namespace Coffee.UIParticleInternal
|
|||
Profiler.EndSample();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add a component of a specific type to the children of a GameObject.
|
||||
/// </summary>
|
||||
public static void AddComponentOnChildren<T>(this Component self, bool includeSelf)
|
||||
where T : Component
|
||||
{
|
||||
if (self == null) return;
|
||||
|
||||
Profiler.BeginSample("(COF)[ComponentExt] AddComponentOnChildren > Self");
|
||||
if (includeSelf && !self.TryGetComponent<T>(out _))
|
||||
{
|
||||
self.gameObject.AddComponent<T>();
|
||||
}
|
||||
|
||||
Profiler.EndSample();
|
||||
|
||||
Profiler.BeginSample("(COF)[ComponentExt] AddComponentOnChildren > Child");
|
||||
var childCount = self.transform.childCount;
|
||||
for (var i = 0; i < childCount; i++)
|
||||
{
|
||||
var child = self.transform.GetChild(i);
|
||||
if (child.TryGetComponent<T>(out _)) continue;
|
||||
|
||||
child.gameObject.AddComponent<T>();
|
||||
}
|
||||
|
||||
Profiler.EndSample();
|
||||
}
|
||||
|
||||
#if !UNITY_2021_2_OR_NEWER && !UNITY_2020_3_45 && !UNITY_2020_3_46 && !UNITY_2020_3_47 && !UNITY_2020_3_48
|
||||
public static T GetComponentInParent<T>(this Component self, bool includeInactive) where T : Component
|
||||
{
|
||||
|
|
|
@ -6,6 +6,15 @@ namespace Coffee.UIParticleInternal
|
|||
{
|
||||
internal static class Misc
|
||||
{
|
||||
public static T[] FindObjectsOfType<T>() where T : Object
|
||||
{
|
||||
#if UNITY_2023_1_OR_NEWER
|
||||
return Object.FindObjectsByType<T>(FindObjectsInactive.Include, FindObjectsSortMode.None);
|
||||
#else
|
||||
return Object.FindObjectsOfType<T>();
|
||||
#endif
|
||||
}
|
||||
|
||||
public static void Destroy(Object obj)
|
||||
{
|
||||
if (!obj) return;
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 39ed6a6b0a72e482488bd298b2ae762e
|
||||
guid: 182319ecc315e4858b119764af0fbcb0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
|
@ -14,6 +14,8 @@ namespace Coffee.UIParticleInternal
|
|||
private static readonly FastAction s_AfterCanvasRebuildAction = new FastAction();
|
||||
private static readonly FastAction s_LateAfterCanvasRebuildAction = new FastAction();
|
||||
private static readonly FastAction s_BeforeCanvasRebuildAction = new FastAction();
|
||||
private static readonly FastAction s_OnScreenSizeChangedAction = new FastAction();
|
||||
private static Vector2Int s_LastScreenSize;
|
||||
|
||||
static UIExtraCallbacks()
|
||||
{
|
||||
|
@ -48,6 +50,15 @@ namespace Coffee.UIParticleInternal
|
|||
remove => s_AfterCanvasRebuildAction.Remove(value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event that occurs when the screen size changes.
|
||||
/// </summary>
|
||||
public static event Action onScreenSizeChanged
|
||||
{
|
||||
add => s_OnScreenSizeChangedAction.Add(value);
|
||||
remove => s_OnScreenSizeChangedAction.Remove(value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes the UIExtraCallbacks to ensure proper event handling.
|
||||
/// </summary>
|
||||
|
@ -77,6 +88,17 @@ namespace Coffee.UIParticleInternal
|
|||
/// </summary>
|
||||
private static void OnBeforeCanvasRebuild()
|
||||
{
|
||||
var screenSize = new Vector2Int(Screen.width, Screen.height);
|
||||
if (s_LastScreenSize != screenSize)
|
||||
{
|
||||
if (s_LastScreenSize != default)
|
||||
{
|
||||
s_OnScreenSizeChangedAction.Invoke();
|
||||
}
|
||||
|
||||
s_LastScreenSize = screenSize;
|
||||
}
|
||||
|
||||
s_BeforeCanvasRebuildAction.Invoke();
|
||||
InitializeAfterCanvasRebuild();
|
||||
}
|
||||
|
|
|
@ -9,6 +9,8 @@ using UnityEngine.UI;
|
|||
using Random = UnityEngine.Random;
|
||||
|
||||
[assembly: InternalsVisibleTo("Coffee.UIParticle.Editor")]
|
||||
[assembly: InternalsVisibleTo("Coffee.UIParticle.PerformanceDemo")]
|
||||
[assembly: InternalsVisibleTo("Coffee.UIParticle.Demo")]
|
||||
|
||||
namespace Coffee.UIExtensions
|
||||
{
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using Coffee.UIParticleInternal;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
|
@ -51,11 +52,7 @@ namespace Coffee.UIExtensions.Demo
|
|||
|
||||
public void EnableAnimations(bool flag)
|
||||
{
|
||||
#if UNITY_2023_1_OR_NEWER
|
||||
foreach (var animator in FindObjectsByType<Animator>(FindObjectsInactive.Include, FindObjectsSortMode.None))
|
||||
#else
|
||||
foreach (var animator in FindObjectsOfType<Animator>())
|
||||
#endif
|
||||
foreach (var animator in Misc.FindObjectsOfType<Animator>())
|
||||
{
|
||||
animator.enabled = flag;
|
||||
}
|
||||
|
@ -83,11 +80,7 @@ namespace Coffee.UIExtensions.Demo
|
|||
|
||||
public void UIParticle_Scale(float scale)
|
||||
{
|
||||
#if UNITY_2023_1_OR_NEWER
|
||||
foreach (var uip in FindObjectsByType<UIParticle>(FindObjectsInactive.Include, FindObjectsSortMode.None))
|
||||
#else
|
||||
foreach (var uip in FindObjectsOfType<UIParticle>())
|
||||
#endif
|
||||
foreach (var uip in Misc.FindObjectsOfType<UIParticle>())
|
||||
{
|
||||
uip.scale = scale;
|
||||
}
|
||||
|
@ -95,11 +88,7 @@ namespace Coffee.UIExtensions.Demo
|
|||
|
||||
public void ParticleSystem_WorldSpaseSimulation(bool flag)
|
||||
{
|
||||
#if UNITY_2023_1_OR_NEWER
|
||||
foreach (var p in FindObjectsByType<ParticleSystem>(FindObjectsInactive.Include, FindObjectsSortMode.None))
|
||||
#else
|
||||
foreach (var p in FindObjectsOfType<ParticleSystem>())
|
||||
#endif
|
||||
foreach (var p in Misc.FindObjectsOfType<ParticleSystem>())
|
||||
{
|
||||
var main = p.main;
|
||||
main.simulationSpace = flag
|
||||
|
@ -135,11 +124,7 @@ namespace Coffee.UIExtensions.Demo
|
|||
|
||||
public void ParticleSystem_SetScale(float scale)
|
||||
{
|
||||
#if UNITY_2023_1_OR_NEWER
|
||||
foreach (var ps in FindObjectsByType<ParticleSystem>(FindObjectsInactive.Include, FindObjectsSortMode.None))
|
||||
#else
|
||||
foreach (var ps in FindObjectsOfType<ParticleSystem>())
|
||||
#endif
|
||||
foreach (var ps in Misc.FindObjectsOfType<ParticleSystem>())
|
||||
{
|
||||
ps.transform.localScale = new Vector3(scale, scale, scale);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue