public static void UseSkillArt(SkillUnit.SkillArt oart)
        {
            SkillArt art = EditorDataContainer.currentskillAssetData.skillArt;

            DataConvert.ConvertSkillArt(art, oart);

            string effectName = EditorDataContainer.GetStringById(oart.unitEffect.effect);

            if (art.unitEffect == null)
            {
                art.unitEffect = new List <SkillEffectUnit>();
            }
            if (art.unitEffect.Count == 0)
            {
                art.unitEffect.Add(new SkillEffectUnit());
            }
            art.unitEffect[0].artEffect.effectObj = AssetUtility.GetSkillEffect(art.modelType, art.modelName, effectName);

            string hitEffectName = EditorDataContainer.GetStringById(oart.hitEffect.effect);

            if (art.hitEffect == null)
            {
                art.hitEffect = new List <SkillEffectUnit>();
            }
            if (art.hitEffect.Count == 0)
            {
                art.hitEffect.Add(new SkillEffectUnit());
            }
            art.hitEffect[0].artEffect.effectObj = AssetUtility.GetSkillEffect(art.modelType, art.modelName, hitEffectName);


            if (art.tipEffect == null)
            {
                art.tipEffect = new List <SkillEffectUnit>();
            }
            if (art.tipEffect.Count == 0)
            {
                art.tipEffect.Add(new SkillEffectUnit());
            }
            art.tipEffect[0].artEffect.effectObj = AssetUtility.GetSkillEffect(art.modelType, art.modelName, hitEffectName);

            for (int i = 0; i < oart.beginEffect.Count; i++)
            {
                string beginEffectName = EditorDataContainer.GetStringById(oart.beginEffect[i].effect);
                art.beginEffect[i].artEffect.effectObj = AssetUtility.GetSkillEffect(art.modelType, art.modelName, beginEffectName);
            }
        }
        public static void SaveCurrentSkillUnitToList()
        {
            int id = currentskillAssetData.skillUnit.id;

            for (int i = 0; i < allSkillUnits.units.Count; i++)
            {
                if (allSkillUnits.units[i].id == id)
                {
                    DataConvert.ConvertSkillUnit(allSkillUnits.units[i], currentskillAssetData.skillUnit);
                    for (int j = 0; j < allSkillUnits.arts.Count; j++)
                    {
                        if (allSkillUnits.units[i].artId == allSkillUnits.arts[j].id)
                        {
                            allSkillUnits.arts[j] = DataConvert.ConvertSkillArt(EditorDataContainer.currentskillAssetData.skillArt);
                            return;
                        }
                    }
                    return;
                }
            }
        }
Exemplo n.º 3
0
 private void OnGUI()
 {
     EditorGUILayout.BeginVertical();
     EditorGUILayout.LabelField("输入技能id数字或id名称搜索");
     id     = EditorGUILayout.IntField("id数字:", id);
     idName = EditorGUILayout.TextField("id名称:", idName);
     if (GUILayout.Button("id数字搜索并应用", GUILayout.Height(40)))
     {
         if (id > 0 && EditorDataContainer.allSkillUnits.units.Count > id)
         {
             idName = EditorDataContainer.GetSkillStringById(id);
             DataConvert.ConvertSkillUnit(EditorDataContainer.currentskillAssetData.skillUnit, EditorDataContainer.allSkillUnits.units[id]);
             int curart = EditorDataContainer.currentskillAssetData.skillUnit.artId;
             SkillUnit.SkillArt oart = EditorDataContainer.allSkillUnits.arts[curart];
             DataConvert.ConvertSkillArt(EditorDataContainer.currentskillAssetData.skillArt, oart);
             EditorDataContainer.UseSkillArt(oart);
         }
     }
     if (GUILayout.Button("id名字搜索并应用", GUILayout.Height(40)))
     {
         id = EditorDataContainer.GetSkillIdByString(idName);
         if (id > 0 && EditorDataContainer.allSkillUnits.units.Count > id)
         {
             DataConvert.ConvertSkillUnit(EditorDataContainer.currentskillAssetData.skillUnit, EditorDataContainer.allSkillUnits.units[id]);
             int curart = EditorDataContainer.currentskillAssetData.skillUnit.artId;
             SkillUnit.SkillArt oart = EditorDataContainer.allSkillUnits.arts[curart];
             DataConvert.ConvertSkillArt(EditorDataContainer.currentskillAssetData.skillArt, oart);
             EditorDataContainer.UseSkillArt(oart);
         }
     }
     if (GUILayout.Button("Close", GUILayout.Height(40)))
     {
         Close();
     }
     EditorGUILayout.EndVertical();
 }
Exemplo n.º 4
0
        private void DrawButtons()
        {
            //使用选择的技能参数
            if (GUILayout.Button(new GUIContent("Use Choose Unit\n加载选择的技能数据", "使用选择的技能Unit"), GUILayout.Height(40)))
            {
                DataConvert.ConvertSkillUnit(EditorDataContainer.currentskillAssetData.skillUnit, EditorDataContainer.allSkillUnits.units[SelectSkillUnit]);
                int curart = EditorDataContainer.currentskillAssetData.skillUnit.artId;
                SkillUnit.SkillArt oart = EditorDataContainer.allSkillUnits.arts[curart];
                DataConvert.ConvertSkillArt(EditorDataContainer.currentskillAssetData.skillArt, oart);
                EditorDataContainer.UseSkillArt(oart);
            }
            //使用选择的技能参数
            if (GUILayout.Button(new GUIContent("Use Choose Skill Art\n加载选择的特效数据", "使用选择的技能数据填充当前技能数据"), GUILayout.Height(40)))
            {
                SkillUnit.SkillArt oart = EditorDataContainer.allSkillUnits.arts[SelectSkillArt];
                EditorDataContainer.UseSkillArt(oart);
            }
            if (GUILayout.Button(new GUIContent("Generate Sequence\n生成序列", "生成序列"), GUILayout.Height(40)))
            {
                EditorDataContainer.GenerateSequence(EditorDataContainer.currentskillAssetData);
                Close();
            }
            if (GUILayout.Button(new GUIContent("Generate SkillData\n生成技能数据", "由当前序列生成技能数据对象"), GUILayout.Height(40)))
            {
                if (CurrentSequence != null)
                {
                    EditorDataContainer.currentskillAssetData = EditorDataContainer.MakeSkillAssetData(CurrentSequence);
                    Debug.Log(EditorDataContainer.currentskillAssetData.skillArt.beginEffect.Count);
                    Reset();
                }
            }
            if (GUILayout.Button("Search\n搜索技能", GUILayout.Height(40)))
            {
                var window = GetWindow <SearchWindow>();
                window.Show();
            }
            if (GUILayout.Button("Save Asset\n保存技能为Asset", GUILayout.Height(40)))
            {
                EditorDataContainer.SaveSkillAssetData();
            }
            if (GUILayout.Button("Load Asset\n加载Asset技能文件", GUILayout.Height(40)))
            {
                EditorDataContainer.LoadSkillAssetData();
                Reset();
                Repaint();
            }
            if (GUILayout.Button("Save SystemTables\n保存技能到系统表", GUILayout.Height(40)))
            {
                EditorDataContainer.SaveSystemTables();
                EditorDataContainer.LoadSystemTables();
                Reset();
                Repaint();
            }

            if (GUILayout.Button(showUnitList ? "HideSkillUnitList\n隐藏系统技能表" : "ShowSkillUnitList\n显示系统技能表", GUILayout.Height(40)))
            {
                showUnitList = !showUnitList;
            }
            if (GUILayout.Button(showArtList ? "HideSkillArtList\n隐藏系统特效表" : "ShowSkillArtList\n显示系统特效表", GUILayout.Height(40)))
            {
                showArtList = !showArtList;
            }
            if (GUILayout.Button("Close\n关闭窗口", GUILayout.Height(40)))
            {
                Close();
            }
        }