Exemplo n.º 1
0
 private void AddShortcutsByTab(eNodeShortcutTab tabType)
 {
     RemoveAllNodeShortcuts();
     List <NodeType>[] nodesArr = _nodeTabs[(int)tabType].typeList;
     for (int i = 0; i < nodesArr.Length; i++)
     {
         if (i != 0)
         {
             GameObject    segmentGo  = ResourceManager.GetInstance().GetPrefab("Prefabs/Views", "MainView/ShortcutSegment");
             RectTransform shortcutTf = segmentGo.GetComponent <RectTransform>();
             shortcutTf.SetParent(_nodeShortcutsContainerTf, false);
         }
         List <NodeType> typeList = nodesArr[i];
         for (int j = 0; j < typeList.Count; j++)
         {
             NodeConfig nodeCfg = DatabaseManager.NodeDatabase.GetNodeCfgByNodeType(typeList[j]);
             if (nodeCfg == null)
             {
                 Logger.LogError("Node Config is not exist!! NodeType = " + typeList[j]);
             }
             GameObject    shortcutGo = ResourceManager.GetInstance().GetPrefab("Prefabs/Views", "MainView/NodeShortcut");
             RectTransform shortcutTf = shortcutGo.GetComponent <RectTransform>();
             shortcutTf.SetParent(_nodeShortcutsContainerTf, false);
             GameObject btnGo = shortcutTf.Find("BgBtn").gameObject;
             // 添加监听事件
             UIEventListener.Get(btnGo).AddPointerEnter(() =>
             {
                 UIManager.GetInstance().OpenView(ViewID.TooltipView, nodeCfg.shortcutTip);
             });
             UIEventListener.Get(btnGo).AddPointerExit(() =>
             {
                 UIManager.GetInstance().CloseView(ViewID.TooltipView);
             });
             UIEventListener.Get(btnGo).AddClick(() =>
             {
                 TryInsertNode(nodeCfg.type);
             });
             Image img = shortcutTf.Find("Image").GetComponent <Image>();
             img.sprite = ResourceManager.GetInstance().GetSprite("ShortcutsAtlas", nodeCfg.shortcutPath);
             // 添加到列表中
             _nodeShortcutList.Add(shortcutGo);
         }
     }
 }
Exemplo n.º 2
0
        private void InitNodeShortcutBar()
        {
            _nodeTabs = new List <NodeTab>();
            // general
            NodeTab tab = new NodeTab()
            {
                type     = eNodeShortcutTab.General,
                tabName  = "General",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.Folder, NodeType.CodeBlock, NodeType.If, NodeType.DefVar, NodeType.Repeat, NodeType.Code, NodeType.Comment
                    },
                },
            };

            _nodeTabs.Add(tab);
            // stage
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.Stage,
                tabName  = "Stage",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.StageGroup, NodeType.Stage
                    },
                    new List <NodeType> {
                        NodeType.StartDialog, NodeType.DialogWait, NodeType.CreateDialogCG, NodeType.HighlightDialogCG, NodeType.FadeoutDialogCG, NodeType.CreateSentence
                    },
                },
            };
            _nodeTabs.Add(tab);
            // task
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.Task,
                tabName  = "Task",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.AddTask, NodeType.TaskWait
                    },
                },
            };
            _nodeTabs.Add(tab);
            // Enemy
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.Enemy,
                tabName  = "Enemy",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.DefineEnemy, NodeType.CreateCustomizedEnemy, NodeType.CreateSimpleEnemy
                    },
                    new List <NodeType> {
                        NodeType.SetDropItems, NodeType.SetInvincible
                    },
                },
            };
            _nodeTabs.Add(tab);
            // Boss
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.Boss,
                tabName  = "Boss",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.DefineBoss, NodeType.CreateBoss
                    },
                    new List <NodeType> {
                        NodeType.BossSetWanderProps, NodeType.BossWander
                    },
                    new List <NodeType> {
                        NodeType.ShowBossBloodBar, NodeType.ShowBossPosHint, NodeType.ShowBossAura, NodeType.ShowBossSpellCardHpAura
                    },
                    new List <NodeType> {
                        NodeType.DefineSpellCard, NodeType.StartSpellCard, NodeType.SetBossPhaseData
                    },
                },
            };
            _nodeTabs.Add(tab);
            // Bullet
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.Bullet,
                tabName  = "Bullet",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.DefineBullet, NodeType.CreateCustomizedBullet, NodeType.CreateSimpleBullet
                    },
                    new List <NodeType> {
                        NodeType.SetBulletStyle, NodeType.ChangeBulletProperty
                    },
                },
            };
            _nodeTabs.Add(tab);
            // Laser
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.Laser,
                tabName  = "Laser",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.DefineLaser, NodeType.CreateCustomizedLaser, NodeType.LaserTurnHalfOn, NodeType.LaserTurnOn, NodeType.LaserTurnOff, NodeType.LaserChangeLengthTo
                    },
                    new List <NodeType> {
                        NodeType.SetBulletStyle, NodeType.ChangeBulletProperty
                    },
                },
            };
            _nodeTabs.Add(tab);
            // LaserEx
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.LaserEx,
                tabName  = "LaserEx",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.DefineLinearLaser, NodeType.CreateCustomizedLinearLaser
                    },
                    new List <NodeType> {
                        NodeType.DefineCurveLaser, NodeType.CreateCustomizedCurveLaser
                    },
                },
            };
            _nodeTabs.Add(tab);
            // Tools
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.Tools,
                tabName  = "Tools",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.DefineCollider, NodeType.CreateCustomizedCollider, NodeType.CreateSimpleCollider
                    },
                    new List <NodeType> {
                        NodeType.ColliderTrigger, NodeType.Rebound
                    },
                    new List <NodeType> {
                        NodeType.DropItems
                    },
                },
            };
            _nodeTabs.Add(tab);
            // Object
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.Object,
                tabName  = "Object",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.DefineSTGObject, NodeType.DefineSpecialSTGObject
                    },
                    new List <NodeType> {
                        NodeType.CreateCusomizedSTGObject, NodeType.SetSpriteForSTGObject, NodeType.STGObjectSetColor, NodeType.STGObjectChangeAlphaTo
                    },
                },
            };
            _nodeTabs.Add(tab);
            // Unit
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.Unit,
                tabName  = "Unit",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.UnitEventTrigger
                    },
                    new List <NodeType> {
                        NodeType.UnitSetV, NodeType.UnitSetAcce, NodeType.UnitMoveTo, NodeType.UnitMoveTowards
                    },
                    new List <NodeType> {
                        NodeType.UnitSetStraightParas, NodeType.UnitSetPolarParas
                    },
                    new List <NodeType> {
                        NodeType.UnitSetResistEliminatedTypes
                    },
                    new List <NodeType> {
                        NodeType.UnitAttachTo, NodeType.UnitSetRelativePos
                    },
                    new List <NodeType> {
                        NodeType.KillUnit, NodeType.DelUnit
                    },
                    new List <NodeType> {
                        NodeType.PlayAni
                    },
                },
            };
            _nodeTabs.Add(tab);
            // Audio
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.Audio,
                tabName  = "Audio",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.LoadSound
                    },
                    new List <NodeType> {
                        NodeType.PlaySound, NodeType.StopSound, NodeType.PauseSound, NodeType.ResumeSound
                    },
                },
            };
            _nodeTabs.Add(tab);
            // Effect
            tab = new NodeTab()
            {
                type     = eNodeShortcutTab.Effect,
                tabName  = "Effect",
                typeList = new List <NodeType>[]
                {
                    new List <NodeType> {
                        NodeType.CreateChargeEffect, NodeType.CreateBurstEffect, NodeType.ShakeScreen, NodeType.StopShakeScreen
                    },
                },
            };
            _nodeTabs.Add(tab);
            // 初始化节点快捷按钮的标签
            RectTransform barTf = _viewTf.Find("NodeShortcutBar").GetComponent <RectTransform>();

            _nodeShortcutsContainerTf = barTf.Find("NodeShortcuts").GetComponent <RectTransform>();
            _nodeShortcutList         = new List <GameObject>();
            int i = 0;

            for (i = 0; i < _nodeTabs.Count; i++)
            {
                tab       = _nodeTabs[i];
                tab.tabGo = barTf.Find(tab.tabName).gameObject;
                eNodeShortcutTab tabType = tab.type;
                UIEventListener.Get(tab.tabGo).AddClick(() => {
                    AddShortcutsByTab(tabType);
                });
            }
            // 默认选中general
            tab = _nodeTabs[0];
            tab.tabGo.GetComponent <Toggle>().isOn = true;
            AddShortcutsByTab(eNodeShortcutTab.General);
        }