Exemple #1
0
        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);
        }
Exemple #2
0
        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;
                }
            }
        }
Exemple #4
0
        // 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;
            }
        }