void OnDisable() { if (PreviewEditor) { PreviewEditor.ClearDrawExtraGuideLineActions(); } }
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(); }
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(); }