public static UiLayoutSettings.Signal AddSignal(string name = "") { List <UiLayoutSettings.Signal> signals = GetSignals(); int newid = 0; while (newid == 0) { newid = Random.Range(100000, 999999); if (signals.Find(x => x.Id == "signal" + newid) != null) { newid = 0; } } UiLayoutSettings.Signal signal = new UiLayoutSettings.Signal { Id = "signal" + newid, Name = string.IsNullOrEmpty(name) ? "Signal #" + signals.Count : name }; signals.Add(signal); return(signal); }
public static string GetSignalName(string id) { List <UiLayoutSettings.Signal> signals = GetSignals(); UiLayoutSettings.Signal signal = signals.Find(x => x.Id == id); if (signal != null && !string.IsNullOrEmpty(signal.Name)) { return(signal.Name); } return("Undefined"); }
// Render item element prefab field private void RenderListItemPrefab(List <UiLayoutPreset> list, UiLayoutPreset item, ItemType type) { GameObject prefabOriginal = Resources.Load <GameObject>(item.PrefabPath); UiLayoutElement prefab = prefabOriginal != null?prefabOriginal.GetComponent <UiLayoutElement>() : null; // Screen property EditorGUI.BeginChangeCheck(); switch (type) { case ItemType.Popup: prefab = (UiLayoutElementPopup)EditorGUILayout.ObjectField("Prefab", prefab, typeof(UiLayoutElementPopup), allowSceneObjects: false); break; case ItemType.Panel: prefab = (UiLayoutElementPanel)EditorGUILayout.ObjectField("Prefab", prefab, typeof(UiLayoutElementPanel), allowSceneObjects: false); break; case ItemType.Screen: prefab = (UiLayoutElementScreen)EditorGUILayout.ObjectField("Prefab", prefab, typeof(UiLayoutElementScreen), allowSceneObjects: false); break; } if (EditorGUI.EndChangeCheck()) { InternalUtilities.SetDirty(target); if (prefab != null) { Match match = Regex.Match ( AssetDatabase.GetAssetPath(prefab.gameObject), @"Resources/([A-Za-z0-9\-\/.]*).prefab", RegexOptions.IgnoreCase ); item.PrefabPath = match.Success ? match.Groups[1].Value : string.Empty; UiLayoutSettings.Signal signalShow = InternalUtilities.AddSignal("Ui." + GetItemPrefabName(item) + ".Show"); UiLayoutSettings.Signal signalHide = InternalUtilities.AddSignal("Ui." + GetItemPrefabName(item) + ".Hide"); item.SignalsShow = item.SignalsShow.Push(signalShow.Id); item.SignalsHide = item.SignalsHide.Push(signalHide.Id); } else { item.PrefabPath = string.Empty; //item.SignalShow = string.Empty; //item.SignalHide = string.Empty; } } }
// Initialization private void Start() { for (int i = 0; i < AnimationClips.Count; i++) { if (AnimationClips[i].PlayOnAwake) { Play(AnimationClips[i]); } if (AnimationClips[i].PlayOnSignals != null) { for (int j = 0; j < AnimationClips[i].PlayOnSignals.Length; j++) { UiLayoutSettings.Signal signal = Expansion.Instance.LayoutSettings.Signals.Find(x => x.Id == AnimationClips[i].PlayOnSignals[j]); if (signal != null) { SubscribeClipToSignal(signal.Id, AnimationClips[i].Name); SubscribeClipToSignal(signal.Name, AnimationClips[i].Name); } else { SubscribeClipToSignal(AnimationClips[i].PlayOnSignals[j], AnimationClips[i].Name); } } } } UiLayoutElement element = FindParentLayoutElement(gameObject.transform); if (element != null) { element.OnShowBegin += OnParentLayoutElementShowBegin; element.OnHideBegin += OnParentLayoutElementHideBegin; } }