1、功能实现效果
2、目录逻辑
public class CatalogLogic
{
protected CataloguePanel uIBase;
Dictionary<string, CatalogueConfig.ConfigField> catalogueDic;
public List<CatalogueConfig.ConfigField> catalogueNodeList;
public CatalogLogic(CataloguePanel uIBase, Dictionary<string, CatalogueConfig.ConfigField> catalogueDic)
{
this.uIBase = uIBase;
this.catalogueDic = catalogueDic;
}
public void Start(UnityAction initAction)
{
MeridanAcupointsCatalogueData.Instance.ClearCatalogueItemDataDic();
TreeNode<CatalogueConfig.ConfigField> catalogueData = CreateCatalogueNodeData();
Transform catalogueContentTrans = uIBase.catalogueContent;
SetCatalogueData(catalogueData, catalogueContentTrans);
initAction?.Invoke();
}
public UnityAction<CatalogueItem.Data, bool> ModelShowHidAction;
/// <summary>
/// 创建目录 节点数据
/// </summary>
public TreeNode<CatalogueConfig.ConfigField> CreateCatalogueNodeData()
{
catalogueNodeList = catalogueDic.Values.ToList();
TreeNode<CatalogueConfig.ConfigField> rootNode = new TreeNode<CatalogueConfig.ConfigField>(catalogueDic["-1"]);
SetCatalogueNodeData(rootNode);
return rootNode;
}
private List<string> GetParentAllId(string id, List<string> ids)
{
if (catalogueDic.ContainsKey(id))
{
ids.Add(id);
var data = catalogueDic[id];
return GetParentAllId(data.parentDirectoryID, ids);
}
else
{
return ids;
}
}
private void GetBrotherAllId(string id, List<string> ids)
{
if (catalogueDic.ContainsKey(id))
{
var data = catalogueDic[id];
foreach (var item in catalogueDic)
{
if (item.Value.parentDirectoryID == data.parentDirectoryID)
{
ids.Add(item.Value.ID);
}
}
}
}
public virtual void CataloguePosButtonList(CatalogueItem.Data data)
{
if (data.catalogueItemState == CatalogueItem.CatalogueItemState.PickOn)
{
List<GameObject> modelDatas = new List<GameObject>();
List<string> allModelID = new List<string>();
allModelID.Add(data.catalogueNodeItemData.ID);//data.Id
allModelID.AddRange(data.childs);
for (int i = 0; i < allModelID.Count; i++)
{
string modelId = allModelID[i];
}
}
}
private void GetChildAllId(string id, List<string> ids)
{
if (catalogueDic.ContainsKey(id))
{
foreach (var it