コード例 #1
0
ファイル: SkillEditorWindow.cs プロジェクト: linxscc/bnyx
 void OnDisable()
 {
     if (PreviewEditor)
     {
         PreviewEditor.ClearDrawExtraGuideLineActions();
     }
 }
コード例 #2
0
ファイル: SkillEditorWindow.cs プロジェクト: linxscc/bnyx
        void SkeletonAnimOnGUI(GUIStyle boxStyle, System.Single innerBoxWidth, float height)
        {
            var Target = Selection.activeObject;

            EditorGUILayout.BeginHorizontal();
            if (Target is SkeletonDataAsset && Target == Selection.activeObject)
            {
                // 动画选择列表 add by TangJian 2018/8/24 16:05
                {
                    EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(((innerBoxWidth / 3) * 2 - 32) * 0.3f), GUILayout.ExpandHeight(true));

                    scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);
                    // PreviewEditor.OnInspectorGUI ();
                    EditorGUILayout.LabelField("Preview", EditorStyles.boldLabel);
                    PreviewEditor.DrawAnimationList();
                    // EditorGUILayout.Space();
                    //PreviewEditor.DrawSlotList();
                    // EditorGUILayout.Space();
                    // PreviewEditor.DrawUnityTools();
                    EditorGUILayout.EndScrollView();
                    EditorGUILayout.EndVertical();
                }

                // 动画播放界面 add by TangJian 2018/8/24 16:05
                {
                    EditorGUILayout.BeginVertical(boxStyle);

                    if (PreviewEditor.HasPreviewGUI())
                    {
                        Rect     r     = GUILayoutUtility.GetRect(((innerBoxWidth / 3) * 2 - 32) * 0.7f, height);
                        GUIStyle style = new GUIStyle("PreBackground");
                        PreviewEditor.OnInteractivePreviewGUI(r, style);
                    }
                    EditorGUILayout.EndVertical();
                }
            }
            EditorGUILayout.EndHorizontal();
        }
コード例 #3
0
ファイル: SkillEditorWindow.cs プロジェクト: linxscc/bnyx
        void OnGUI()
        {
            GUIStyle boxStyle = new GUIStyle("box");

            var width  = position.size.x - boxStyle.border.horizontal;
            var height = position.size.y - boxStyle.border.vertical;

            var innerBoxWidth  = width - (boxStyle.padding.horizontal + boxStyle.border.horizontal);
            var innerBoxHeight = height - (boxStyle.padding.vertical + boxStyle.border.vertical);

            MyGUIExtend.Instance.ToolbarButton(new Dictionary <string, Action>
            {
                {
                    "读取", loadSkill
                },
                {
                    "保存", saveSkill
                }
            });

            baseScrollViewPos = EditorGUILayout.BeginScrollView(baseScrollViewPos);

            using (new EditorGUILayout.VerticalScope())
            {
                //路径
                EditorGUILayout.BeginVertical(boxStyle, GUILayout.Height(innerBoxHeight / 24));
                using (new EditorGUILayout.HorizontalScope())
                {
                    EditorGUILayout.LabelField(skillDataFile);
                }
                EditorGUILayout.EndVertical();
                //list 内容
                EditorGUILayout.BeginVertical(boxStyle, GUILayout.Height(innerBoxHeight / 2f));
                using (new EditorGUILayout.HorizontalScope())
                {
                    EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 3),
                                                  GUILayout.Height(innerBoxHeight / 2));
                    EditorGUILayout.BeginVertical();
                    SearchContext     = GUILayout.TextField(SearchContext);
                    listScrollViewPos = EditorGUILayout.BeginScrollView(listScrollViewPos);

                    #region list

                    if (!string.IsNullOrEmpty(SearchContext))
                    {
                        for (int i = 0; i < skillDataList.Count; i++)
                        {
                            if (Regex.IsMatch(skillDataList[i].id.ToLower(), SearchContext))
                            {
                                ListID(i);
                            }
                        }
                    }
                    else
                    {
                        for (int i = skillDataList.Count - 1; i >= 0; i--)
                        {
                            EditorGUILayout.BeginHorizontal();
                            ListID(i);
                            EditorGUILayout.EndHorizontal();
                        }
                    }

                    #endregion

                    if (MyGUI.Button("+"))
                    {
                        SkillData skillData = new SkillData(new SkillData("Front"), new SkillData("Centre"), new SkillData("Back"));
                        skillData.id            = "New";
                        skillData.IsPhasesSkill = true;
                        skillDataList.Add(skillData);
                        CreatTreeNode();
                    }

                    EditorGUILayout.EndScrollView();
                    EditorGUILayout.EndVertical();
                    EditorGUILayout.EndVertical();

                    EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 6),
                                                  GUILayout.Height(innerBoxHeight / 2));

                    currentSkillTreeNode(currSkillData, new Rect(innerBoxWidth / 3 + 10, innerBoxHeight / 24 + 10, innerBoxWidth / 6, innerBoxHeight / 2f));
                    GUILayout.Space(50);

                    EditorGUILayout.EndVertical();

                    EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 2),
                                                  GUILayout.Height(innerBoxHeight / 2));
                    EditorGUILayout.BeginVertical();
                    editScrollViewPos = EditorGUILayout.BeginScrollView(editScrollViewPos);

                    if (currSkillData.skillDatas.Count > 0 && currentNode != null)
                    {
                        CurrSkillDataInput(currentNode.nodeSkillData);
                    }
                    else
                    {
                        CurrSkillDataInput(currSkillData);
                    }

                    EditorGUILayout.EndScrollView();
                    EditorGUILayout.EndVertical();
                    EditorGUILayout.EndVertical();
                }
                EditorGUILayout.EndVertical();
                //测试
                EditorGUILayout.BeginVertical(boxStyle, GUILayout.Height(innerBoxHeight / 12));
                using (new EditorGUILayout.VerticalScope())
                {
                    if (Application.isPlaying)
                    {
                        using (new EditorGUILayout.VerticalScope())
                        {
                            usecount        = MyGUI.IntFieldWithTitle("使用次数:", usecount);
                            inetal          = MyGUI.FloatFieldWithTitle("间隔时间:", inetal);
                            testSkillOffset = MyGUI.Vector3WithTitle("释放位置:", testSkillOffset);
                        }

                        roleTarget = (GameObject)EditorGUILayout.ObjectField(roleTarget, typeof(GameObject), true);

                        if (MyGUI.Button("测试技能"))
                        {
                            var            playerObject   = GameObject.Find("Player1");
                            RoleController roleController = playerObject.GetComponent <RoleController>();
                            //SkillManager.Instance.UseSkill(currSkillData, playerObject.transform, roleController.RoleData.TeamId, roleController.GetDirection());
                            EditorCoroutineSequenceRunner.RemoveCoroutine("SkillTest");
                            EditorCoroutineSequenceRunner.AddCoroutineIfNot("SkillTest",
                                                                            TestAnimEffect(usecount, inetal, roleController.RoleData.TeamId, playerObject.transform,
                                                                                           testSkillOffset, roleController.GetDirection()));
                        }
                    }
                }
                EditorGUILayout.EndVertical();
                //Spine
                EditorGUILayout.BeginVertical(boxStyle, GUILayout.Height(innerBoxHeight / 4));
                using (new EditorGUILayout.HorizontalScope())
                {
                    if (Application.isPlaying == false)
                    {
                        if (!string.IsNullOrEmpty(currSkillData.SkeletonDataAssetPath))
                        {
                            SkeletonAnimOnGUI(boxStyle, position.width, position.height / 3.2f);
                            panduandanqian();
                            //var skeletondataasset = (SkeletonDataAsset)AssetDatabase.LoadAssetAtPath(currSkillData.SkeletonDataAssetPath, typeof(SkeletonDataAsset));
                            //if (skeletondataasset != null)
                            {
                                //Selection.activeObject = skeletondataasset;
                                //PreviewEditor = UnityEditor.Editor.CreateEditor(Selection.activeObject, typeof(Spine.Unity.Editor.SkeletonPreviewEditor)) as Spine.Unity.Editor.SkeletonPreviewEditor;
                                if (currSkillData.onoffCollider && Selection.activeObject is SkeletonDataAsset)
                                {
                                    PreviewEditor.AddDrawExtraGuideLineAction(currSkillData.id, (Camera camera) =>
                                    {
                                        Handles.color = Color.green;
                                        Handles.DrawWireCube(currSkillData.colliderCenter, currSkillData.colliderSize);
                                    });
                                }

                                if (currSkillData.onoffDamage && Selection.activeObject is SkeletonDataAsset)
                                {
                                    PreviewEditor.AddDrawExtraGuideLineAction(currSkillData.id + "Damage",
                                                                              (Camera camera) =>
                                    {
                                        Handles.color = Color.red;
                                        Handles.DrawWireCube(currSkillData.DamageColliderCenter,
                                                             currSkillData.DamageColliderSize);
                                    });
                                }

                                if (currSkillData.onoffFocus && Selection.activeObject is SkeletonDataAsset)
                                {
                                    PreviewEditor.AddDrawExtraGuideLineAction(currSkillData.id + "focus",
                                                                              (Camera camera) =>
                                    {
                                        Handles.color = Color.red;
                                        Handles.ArrowHandleCap(0, currSkillData.focuspos, Quaternion.Euler(0, 0, 0),
                                                               1, UnityEngine.EventType.Repaint);
                                    });
                                }
                            }
                        }
                    }
                }
                EditorGUILayout.EndVertical();
            }
            EditorGUILayout.EndScrollView();
        }