Exemple #1
0
        //绘制特效信息
        public void DrawSkillArtEffect(SkillArt skillart, float width)
        {
            EditorGUILayout.BeginVertical("Box");
            EditorGUILayout.LabelField("Skill ArtEffect: 特效");
            //id
            if (skillart.idString == "")
            {
                skillart.idString = EditorDrawUtility.GetSkillStringById(skillart.id);
            }
            string id = EditorGUILayout.TextField("Id:", skillart.idString);

            if (id != skillart.idString)
            {
                skillart.idString = id;
                skillart.id       = EditorDrawUtility.GetSkillIdByString(id);
            }
            //modelType
            int typeindex    = (int)skillart.modelType;
            int newtypeindex = EditorGUILayout.Popup("ModelTargetType:", typeindex, Enum.GetNames(typeof(ModelTargetType)));

            if (newtypeindex != typeindex)
            {
                skillart.modelType = (ModelTargetType)newtypeindex;
                allFbx             = null;
                LoadFbx();
            }
            int fbxselet = -1;
            // GameObject fbx = AssetUtility.GetFBXWithName(EditorDataContainer.currentskillAssetData.modelName);
            GameObject fbx = EditorDataContainer.currentskillAssetData.skillArt.model;

            if (fbx != null)
            {
                if (fbxNamelist.Contains(fbx.name))
                {
                    fbxselet = fbxNamelist.IndexOf(fbx.name);
                }
            }
            LoadAnimationState(false);
            EditorGUILayout.BeginHorizontal();
            GameObject NewFbx       = (GameObject)EditorGUILayout.ObjectField("Model:", fbx, typeof(GameObject), true);
            int        newselectfbx = EditorGUILayout.Popup(fbxselet, fbxNamelist.ToArray());

            EditorGUILayout.EndHorizontal();
            if (newselectfbx != fbxselet)
            {
                skillart.model               = allFbx[newselectfbx];
                skillart.modelName           = allFbx[newselectfbx].name;
                skillart.animationController = allFbx[newselectfbx].name + "_Anim";
                LoadAnimationState();
                SkillEffectPrefabs = null;
                LoadEffect();
            }
            else
            {
                if (NewFbx == null)
                {
                    skillart.model               = null;
                    skillart.modelName           = "";
                    skillart.animationController = "";
                }
                else if (NewFbx != skillart.model)
                {
                    skillart.model               = NewFbx;
                    skillart.modelName           = NewFbx.name;
                    skillart.animationController = NewFbx.name + "_Anim";
                    LoadAnimationState();
                    SkillEffectPrefabs = null;
                    LoadEffect();
                }
            }
            EditorGUILayout.TextField("animationControllerName:", skillart.animationController);
            RuntimeAnimatorController controller = AssetUtility.GetAnimationCtl(skillart.modelType, skillart.modelName, skillart.animationController);

            if (skillart.animationControllerObj == null && controller != null)
            {
                skillart.animationControllerObj = controller;
            }

            RuntimeAnimatorController newcontroller = (RuntimeAnimatorController)EditorGUILayout.ObjectField("AnimatorController:", skillart.animationControllerObj, typeof(RuntimeAnimatorController), true);

            if (newcontroller != controller)
            {
                skillart.animationController    = newcontroller.name;
                skillart.animationControllerObj = newcontroller;
                LoadAnimationState();
            }

            EditorGUILayout.LabelField("GuideAction 开始动作:");
            skillart.guideFadeTime = EditorGUILayout.FloatField("  guideFadeTime:", skillart.guideFadeTime);
            EditorDrawUtility.DrawActionRect("  guideAction:", skillart.guideAction, out skillart.guideAction, stateNamelist);
            EditorDrawUtility.DrawActionRect("  guidingAction:", skillart.guidingAction, out skillart.guidingAction, stateNamelist);
            EditorDrawUtility.DrawActionRect("  endAction:", skillart.endAction, out skillart.endAction, stateNamelist);


            showBeginEffect = EditorGUILayout.Foldout(showBeginEffect, "beginEffect 起手特效:");
            //EditorGUILayout.LabelField("beginEffect 起手特效:");
            if (showBeginEffect)
            {
                if (skillart.beginEffect != null)
                {
                    EditorDrawUtility.DrawEffectUnitList(skillart.beginEffect, beginScrollPos, out beginScrollPos, width, ref beginEffectList, effectNamelist, SkillEffectPrefabs);
                }
                else
                {
                    if (GUILayout.Button("Add beginEffectList"))
                    {
                        skillart.beginEffect = new List <SkillEffectUnit>();
                    }
                }
            }
            showEndEffect = EditorGUILayout.Foldout(showEndEffect, "endEffect 结束特效:");
            // EditorGUILayout.LabelField("tipEffect 警告特效:");
            if (showEndEffect)
            {
                if (skillart.endEffect != null)
                {
                    EditorDrawUtility.DrawEffectUnitList(skillart.endEffect, endEffectScrollPos, out endEffectScrollPos, width, ref endEffectList, effectNamelist, SkillEffectPrefabs);
                }
                else
                {
                    if (GUILayout.Button("Add endEffectList"))
                    {
                        skillart.endEffect = new List <SkillEffectUnit>();
                    }
                }
            }
            showUnit = EditorGUILayout.Foldout(showUnit, "unitEffect 弹道特效:");
            //EditorGUILayout.LabelField("unitEffect 弹道特效:");
            if (showUnit)
            {
                if (skillart.unitEffect != null)
                {
                    EditorDrawUtility.DrawEffectUnitList(skillart.unitEffect, unitEffectScrollPos, out unitEffectScrollPos, width, ref unitEffectList, effectNamelist, SkillEffectPrefabs);
                }
                else
                {
                    if (GUILayout.Button("Add unitEffectList"))
                    {
                        skillart.unitEffect = new List <SkillEffectUnit>();
                    }
                }
            }

            showTipEffect = EditorGUILayout.Foldout(showTipEffect, "tipEffect 警告特效:");
            // EditorGUILayout.LabelField("tipEffect 警告特效:");
            if (showTipEffect)
            {
                if (skillart.tipEffect != null)
                {
                    EditorDrawUtility.DrawEffectUnitList(skillart.tipEffect, tipEffectScrollPos, out tipEffectScrollPos, width, ref tipEffectList, effectNamelist, SkillEffectPrefabs);
                }
                else
                {
                    if (GUILayout.Button("Add tipEffectList"))
                    {
                        skillart.tipEffect = new List <SkillEffectUnit>();
                    }
                }
            }
            showHitEffect = EditorGUILayout.Foldout(showHitEffect, "hitEffect 击中特效:");
            // EditorGUILayout.LabelField("tipEffect 警告特效:");
            if (showHitEffect)
            {
                if (skillart.hitEffect != null)
                {
                    EditorDrawUtility.DrawEffectUnitList(skillart.hitEffect, hitEffectScrollPos, out hitEffectScrollPos, width, ref hitEffectList, effectNamelist, SkillEffectPrefabs);
                }
                else
                {
                    if (GUILayout.Button("Add hitEffectList"))
                    {
                        skillart.tipEffect = new List <SkillEffectUnit>();
                    }
                }
            }
            showBeginCamera = EditorGUILayout.Foldout(showBeginCamera, "beginCameraAction 开始相机特效:");

            //EditorGUILayout.LabelField("beginCameraAction 开始相机特效:");
            if (showBeginCamera)
            {
                if (skillart.beginCameraAction != null)
                {
                    EditorDrawUtility.DrawCameraActionList(skillart.beginCameraAction, beginCameraScrollPos, out beginCameraScrollPos, width, ref beginCameraList);
                }
                else
                {
                    if (GUILayout.Button("Add beginCameraActionList"))
                    {
                        skillart.beginCameraAction = new List <SkillCameraAction>();
                    }
                }
            }
            showMoveCamera = EditorGUILayout.Foldout(showMoveCamera, "moveCameraAction 移动相机特效:");
            if (showMoveCamera)
            {
                //EditorGUILayout.LabelField("moveCameraAction 移动相机特效:");
                if (skillart.moveCameraAction != null)
                {
                    EditorDrawUtility.DrawCameraActionList(skillart.moveCameraAction, movingCameraScrollPos, out movingCameraScrollPos, width, ref movingCameraList);
                }
                else
                {
                    if (GUILayout.Button("Add moveCameraActionList"))
                    {
                        skillart.moveCameraAction = new List <SkillCameraAction>();
                    }
                }
            }
            showHitCamera = EditorGUILayout.Foldout(showHitCamera, "hitCameraAction 命中相机特效:");
            if (showHitCamera)
            {
                // EditorGUILayout.LabelField("hitCameraAction 命中相机特效:");
                if (skillart.hitCameraAction != null)
                {
                    EditorDrawUtility.DrawCameraActionList(skillart.hitCameraAction, hitCameraScrollPos, out hitCameraScrollPos, width, ref hitCameraList);
                }
                else
                {
                    if (GUILayout.Button("Add hitCameraActionList"))
                    {
                        skillart.hitCameraAction = new List <SkillCameraAction>();
                    }
                }
            }
            EditorGUILayout.EndVertical();
        }