M丶Lawliet M丶Lawliet
漆黑的夜空里,我在摸索前方的路
关注数: 72 粉丝数: 64 发帖数: 2,126 关注贴吧数: 8
ObjectAnimEditor using System.Collections; using System.Collections.Generic; using UnityEngine; #if UNITY_EDITOR using UnityEditor; namespace Lazy { /// <summary> /// 物体动画编辑器 /// </summary> [CustomEditor(typeof(ObjectAnim))] public class ObjectAnimEditor : Editor { bool showPath = true; string curNode = "0"; Transform temp = null; string ReName = ""; List<Transform> actor = new List<Transform>() { }; ObjectAnim myScript; bool CanShowPanel { get { if (myScript.animGroups.Count <= 0) return false; if (myScript.CurSelectGroup < 0 || myScript.CurSelectGroup > myScript.animGroups.Count - 1) return false; return true; } } private void OnEnable() { myScript = (ObjectAnim)target; UpdatePanel(); } public override void OnInspectorGUI() { AddGroup(); SetGroup(); AnimInfoOperation(); RunningSaveFunc(); if (GUI.changed) { EditorUtility.SetDirty(target); } } public void UpdatePanel() { actor = myScript.animGroups[myScript.CurSelectGroup].actor; curNode = myScript.CurSelectNode.ToString(); } private void SetGroup() { EditorGUILayout.BeginHorizontal(); if (CanShowPanel) { EditorGUILayout.LabelField("动画重命名:"); ReName = EditorGUILayout.TextField(ReName); GUI.backgroundColor = Color.green; if (GUILayout.Button("确认")) { myScript.animGroups[myScript.CurSelectGroup].groupName = ReName; IsChange = true; } GUI.backgroundColor = Color.white; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUI.backgroundColor = Color.green; if (GUILayout.Button("添加演员", GUILayout.MinWidth(20))) { actor.Add(null); IsChange = true; } EditorGUILayout.BeginVertical(); for (int i = 0; i < actor.Count; i++) { EditorGUILayout.BeginHorizontal(); actor[i] = (Transform)EditorGUILayout.ObjectField(actor[i], typeof(Transform), true, GUILayout.MinWidth(50)); GUI.backgroundColor = Color.red; if (GUILayout.Button("删除演员")) { actor.RemoveAt(i); IsChange = true; } GUI.backgroundColor = Color.green; EditorGUILayout.EndHorizontal(); } GUI.backgroundColor = Color.white; EditorGUILayout.EndVertical(); } EditorGUILayout.EndHorizontal(); } private void AddGroup() { EditorGUILayout.BeginVertical(); GUI.backgroundColor = Color.green; if (GUILayout.Button("增加一组动画", GUILayout.MinWidth(50))) { myScript.AddGroup(); myScript.CurSelectGroup = -1; IsChange = true; } EditorGUILayout.BeginHorizontal(); GUILayout.Space(10); GUI.backgroundColor = new Color(0.2f, 0.9f, 0.9f, 1); for (int i = 0; i < myScript.animGroups.Count; i++) { if (i % 4 == 0) { EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); } if (myScript.CurSelectGroup == i) { GUI.backgroundColor = new Color(0.5f, 0.6f, 0.6f, 1); if (GUILayout.Button(myScript.animGroups[i].groupName)) { if (myScript.CurSelectGroup != -1) { ChangeAnimGroup(0); //myScript.JumpToNode(); } myScript.CurSelectGroup = i; ReName = ""; } GUI.backgroundColor = new Color(0.2f, 0.9f, 0.9f, 1); } else { if (GUILayout.Button(myScript.animGroups[i].groupName)) { if (myScript.CurSelectGroup != -1) { ChangeAnimGroup(0); //myScript.JumpToNode(); } myScript.CurSelectGroup = i; ReName = ""; UpdatePanel(); } } } GUI.backgroundColor = Color.white; EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); }
1 下一页