private void CheckUITweenersDirty() { uiTweenersDirty = true; ReplayTweenOnEnable replayScript = (ReplayTweenOnEnable)target; var curTweeners = replayScript.gameObject.GetComponentsInChildren <UITweener>(true); HashSet <UITweener> hashset0 = new HashSet <UITweener>(); HashSet <UITweener> hashset1 = new HashSet <UITweener>(); foreach (var s in curTweeners) { if (s.enabled) { hashset0.Add(s); } } int arraySize = tweeners.arraySize; for (int i = 0; i < arraySize; i++) { var tweener = tweeners.GetArrayElementAtIndex(i); hashset1.Add((UITweener)tweener.objectReferenceValue); } if (hashset0.IsSubsetOf(hashset1) && hashset0.Count == hashset1.Count) { uiTweenersDirty = false; } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); serializedObject.Update(); GUILayout.BeginHorizontal(); GUILayout.Label("Tweeners: "); if (uiTweenersDirty) { Color c = GUI.contentColor; GUI.contentColor = Color.red; GUILayout.Label("Dirty"); GUI.contentColor = c; } else { GUILayout.Label("Clean"); } GUILayout.EndHorizontal(); if (GUILayout.Button("Find All Tween")) { ReplayTweenOnEnable replayScript = (ReplayTweenOnEnable)target; var curTweeners = replayScript.gameObject.GetComponentsInChildren <UITweener>(true); List <UITweener> activeTweeners = new List <UITweener>(curTweeners.Length); for (int i = 0; i < curTweeners.Length; i++) { if (curTweeners[i].enabled) { activeTweeners.Add(curTweeners[i]); } } tweeners.ClearArray(); tweeners.arraySize = activeTweeners.Count; for (int i = 0; i < activeTweeners.Count; i++) { tweeners.GetArrayElementAtIndex(i).objectReferenceValue = activeTweeners[i]; } uiTweenersDirty = false; } serializedObject.ApplyModifiedProperties(); }