/// <summary> /// 绘制攻击定义列表 /// </summary> /// <param name="clip"></param> public static void DrawHitDefinitionList(AIClip clip) { GUILayout.BeginHorizontal(); GUILayout.Label("攻击定义列表:", GUILayout.Width(80)); #region copy and paste icons if (GUILayout.Button(AIFGUISKin.IconCopy, GUILayout.Width(30), GUILayout.Height(30))) { if (AIDataSelection.selectedHitData != null) { CustomClipBoard.CopyData(AIDataSelection.selectedHitData); } } if (GUILayout.Button(AIFGUISKin.IconPaste, GUILayout.Width(30), GUILayout.Height(30))) { object clipBoardObj; CustomClipBoard.GetCopyObject(out clipBoardObj); if (clipBoardObj == null) { Debug.LogError("剪切板没有内容可以粘贴"); } else { clipBoardObj = Utility.XmlDeepCloneObject(clipBoardObj); if (clipBoardObj is AiClipHitData) { clip.hitCheckList.Add(clipBoardObj as AiClipHitData); } } } #endregion if (GUILayout.Button(AIFGUISKin.IconNewItem, GUILayout.Width(30), GUILayout.Height(30))) { clip.hitCheckList.Add(new AiClipHitData()); } GUILayout.EndHorizontal(); for (int i = 0; i < clip.hitCheckList.Count; i++) { AiClipHitData hitCheck = clip.hitCheckList[i]; GUILayout.BeginHorizontal(); Color col = hitCheck == AIDataSelection.selectedHitData?Color.green:GUI.color; if (AIFUIUtility.LayoutButtonWithColor(hitCheck.name, col, 150)) { AIDataSelection.SelectedHitData(hitCheck); HitDataEditWnd.Open(hitCheck); } if (GUILayout.Button("X", GUILayout.Width(40))) { if (EditorUtility.DisplayDialog("tips", "确定删除攻击定义?", "OK")) { clip.hitCheckList.Remove(hitCheck); break; } } GUILayout.EndHorizontal(); } }
public static void Open(AiClipHitData hitData) { HitDataEditWnd wnd = EditorWindow.GetWindow <HitDataEditWnd>(); wnd.SetData(hitData); }