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> { { "读取", Load }, { "保存", Save } }); EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 3), GUILayout.ExpandHeight(true)); int removeIndex = -1; int copyIndex = -1; SearchContext = GUILayout.TextField(SearchContext); verVector2 = GUILayout.BeginScrollView(verVector2); if (!string.IsNullOrEmpty(SearchContext)) { for (int i = 0; i < animEffectSaveData.animEffectDataList.Count; i++) { if (Regex.IsMatch(animEffectSaveData.animEffectDataList[i].id.ToLower(), SearchContext)) { ListID(i); } } } else { for (int i = 0; i < animEffectSaveData.animEffectDataList.Count; i++) { GUILayout.BeginHorizontal(); ListID(i); GUILayout.EndHorizontal(); } } GUILayout.EndScrollView(); if (MyGUI.Button("+")) { animEffectSaveData.animEffectDataList.Add(new AnimEffectData()); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 6), GUILayout.ExpandHeight(true)); // 二级 AnimEffectData animEffectData; if (animEffectSaveData.animEffectDataList.TryGet(focusIndex, out animEffectData)) { // int removeIndex = -1; // int copyIndex = -1; for (int i = 0; i < animEffectData.animEffectDataList.Count; i++) { GUILayout.BeginHorizontal(); int Index = MyGUIExtend.Instance.ListSingleButton("AnimEditor_1", i + ":" + animEffectData.animEffectDataList[i].id, i, ( () => { subFocusIndex = i; })); MyGUIExtend.Instance.Mouse_RightDrop(new Dictionary <string, Action> { { "复制", (() => { animEffectData.animEffectDataList.Add( Tools.DepthClone(animEffectData.animEffectDataList[Index])); }) }, { "删除", (() => { animEffectData.animEffectDataList.RemoveAt(Index); }) } }); GUILayout.EndHorizontal(); } if (animEffectData.animEffectType == AnimEffectData.AnimEffectType.Group || animEffectData.animEffectType == AnimEffectData.AnimEffectType.Random) { if (MyGUI.Button("+")) { animEffectData.animEffectDataList.Add(new AnimEffectData()); } } } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 2), GUILayout.ExpandHeight(true)); AnimEffectData animeffectData; if (animEffectSaveData.animEffectDataList.TryGet(focusIndex, out animeffectData)) { if (subFocusIndex >= 0) { if (animeffectData.animEffectDataList.TryGet(subFocusIndex, out animeffectData)) { } else { // 找不到subFocusIndex位置的AnimEffectData return; } } animEffectDataFieldScrollPos = MyGUI.AnimEffectDataField(animeffectData, animEffectDataFieldScrollPos); if (Application.isPlaying) { testTimes = MyGUI.IntFieldWithTitle("测试次数", testTimes); testInterval = MyGUI.FloatFieldWithTitle("间隔时间", testInterval); moveOrientation = MyGUI.Vector3WithTitle("移动方向", moveOrientation); testPosition = MyGUI.Vector3WithTitle("位置", testPosition); testFlip = MyGUI.ToggleWithTitle("翻转", testFlip); if (MyGUI.Button("测试特效")) { EditorCoroutineSequenceRunner.RemoveCoroutine("AnimEffectTest"); EditorCoroutineSequenceRunner.AddCoroutineIfNot("AnimEffectTest", TestAnimEffect(animeffectData, testTimes, testInterval)); } } } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); }