public void OnToggleClick(bool isOn) { if (isOn) { nowIsOpen = !nowIsOpen; attachedDirData.isFold = !nowIsOpen; transform.Find("dir/dirState").GetComponent <Image>().sprite = nowIsOpen ? dirOpenImg : dirCloseImg; transform.Find("files").gameObject.SetActive(nowIsOpen); if (nowIsOpen) { Transform fileParent = transform.Find("files"); if (fileParent.childCount == 0) { for (int i = 0; i < attachedDirData.dirs.Count; i++) { DirData oneDirData = attachedDirData.dirs[i]; Transform dirObj = Instantiate(Main.instance.dirPrefab, fileParent); dirObj.GetComponent <Toggle>().group = Main.instance.baseToggleGroup; oneDirData.attachedObj = dirObj; oneDirData.parentDir = attachedDirData; DirPrefab tmpDirPrefab = dirObj.GetComponent <DirPrefab>(); tmpDirPrefab.SetDirName(oneDirData.dirName); tmpDirPrefab.SetPos(oneDirData.GetParentDirArr().Count * 100); tmpDirPrefab.attachedDirData = oneDirData; } for (int i = 0; i < attachedDirData.files.Count; i++) { FileData oneFileData = attachedDirData.files[i]; Transform fileObj = Instantiate(Main.instance.filePrefab, fileParent); fileObj.GetComponent <Toggle>().group = Main.instance.baseToggleGroup; oneFileData.attachedObj = fileObj; oneFileData.parentDir = attachedDirData; fileObj.GetComponent <FilePrefab>().Init(oneFileData); } } } Main.instance.ResetSize(); } }
public void Btn_newDir() { int dirArrCount = attachedDirData.GetParentDirArr().Count; if (dirArrCount >= 4) { return; } if (attachedDirData.isFold) { Toggle tmpToggle = GetComponent <Toggle>(); if (!tmpToggle.isOn) { tmpToggle.isOn = true; } else { OnToggleClick(true); } } Transform parentTrsm = transform.Find("files"); Transform dirObj = Instantiate(Main.instance.dirPrefab, parentTrsm); dirObj.GetComponent <Toggle>().group = Main.instance.baseToggleGroup; DirData tmp = new DirData(); attachedDirData.dirs.Add(tmp); tmp.parentDir = attachedDirData; tmp.dirName = "默认分组"; tmp.attachedObj = dirObj; DirPrefab tmpDirPrefab = dirObj.GetComponent <DirPrefab>(); tmpDirPrefab.SetDirName(tmp.dirName); tmpDirPrefab.SetPos((dirArrCount + 1) * 100); tmpDirPrefab.attachedDirData = tmp; dirObj.SetSiblingIndex(tmp.GetDirIndex()); Main.instance.SaveData(); Main.instance.ResetSize(); }