You've already forked taptap2024_GJ_chidouren
84 lines
2.1 KiB
C#
84 lines
2.1 KiB
C#
using UnityEditor;
|
|
using UnityEditor.IMGUI.Controls;
|
|
using UnityEngine;
|
|
|
|
namespace XFFSM
|
|
{
|
|
public class FSMSelectParamWindow : PopupWindowContent
|
|
{
|
|
|
|
#region 字段
|
|
|
|
private float width;
|
|
private FSMConditionData condition;
|
|
private RuntimeFSMController controller;
|
|
|
|
// 搜索框
|
|
private SearchField searchField;
|
|
private Rect searchRect;
|
|
const float searchHeight = 25f;
|
|
|
|
// 标签
|
|
private Rect labelRect;
|
|
const float labelHeight = 30f;
|
|
|
|
// 参数列表
|
|
private FSMParamListTree paramTree;
|
|
private TreeViewState paramState;
|
|
private Rect paramRect;
|
|
|
|
#endregion
|
|
|
|
|
|
public FSMSelectParamWindow(float width,FSMConditionData condition,RuntimeFSMController controller)
|
|
{
|
|
this.width = width;
|
|
this.condition = condition;
|
|
this.controller = controller;
|
|
}
|
|
|
|
|
|
public override Vector2 GetWindowSize()
|
|
{
|
|
return new Vector2(this.width,120);
|
|
}
|
|
|
|
public override void OnGUI(Rect rect)
|
|
{
|
|
|
|
if (paramTree == null)
|
|
{
|
|
if (paramState == null)
|
|
{
|
|
paramState = new TreeViewState();
|
|
}
|
|
|
|
paramTree = new FSMParamListTree(paramState, controller, condition);
|
|
paramTree.Reload();
|
|
}
|
|
|
|
// 搜索框
|
|
if (searchField == null) {
|
|
searchField = new SearchField();
|
|
}
|
|
searchRect.Set(rect.x + 5, rect.y + 5, rect.width - 10, searchHeight);
|
|
paramTree.searchString = searchField.OnGUI(searchRect, paramTree.searchString);
|
|
|
|
// 标签
|
|
labelRect.Set(rect.x, rect.y + searchHeight, rect.width, labelHeight);
|
|
EditorGUI.LabelField(labelRect, condition.parameterName, GUI.skin.GetStyle("AC BoldHeader"));
|
|
|
|
// 参数列表
|
|
|
|
|
|
paramRect.Set(rect.x, rect.y + searchHeight + labelHeight - 5, rect.width, rect.height - searchHeight - labelHeight);
|
|
paramTree.OnGUI(paramRect);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|