public void OnItemClick(GameObject sender) { VCEUICreationTypeItem sender_item = sender.GetComponentInParent <VCEUICreationTypeItem>(); int usage = sender_item.usage; VCESceneSetting scene = sender_item.m_Scene; // 树形菜单 if (usage == 0) { parentId = scene.m_Id; m_BackButton.gameObject.SetActive(true); CreateChildItems(); } // 创建新的ISO else if (usage == 1) { parentId = scene.m_Id; m_BackButton.gameObject.SetActive(true); CreateChildItems(); } // 加载旧的ISO else if (usage == 2) { OnCloseClick(gameObject); VCEditor.Instance.m_UI.m_ISOTab.isChecked = true; VCEditor.Instance.m_UI.m_IsoTip.Show(); } // Template else if (usage == 3) { TextAsset asset = Resources.Load <TextAsset>("Isos/" + scene.m_Id.ToString() + "/index"); if (asset == null) { OnCloseClick(gameObject); VCEditor.NewScene(scene); return; } int count = 0; int.TryParse(asset.text, out count); if (count == 0) { OnCloseClick(gameObject); VCEditor.NewScene(scene); return; } int tmpIdx = (int)(Random.value * count - 0.00001f); OnCloseClick(gameObject); VCEditor.NewScene(scene, tmpIdx); } // Empty else if (usage == 4) { OnCloseClick(gameObject); VCEditor.NewScene(scene); } }
public void CreateChildItems() { foreach (var item in items) { item.FadeOut(); } items.Clear(); if (parentId > 0) { foreach (var scene in VCConfig.s_EditorScenes) { if (scene.m_ParentId == parentId) { VCEUICreationTypeItem item = VCEUICreationTypeItem.Instantiate(m_ItemPrefab); item.m_Scene = scene; item.transform.parent = m_ItemPrefab.transform.parent; item.transform.localScale = m_ItemPrefab.transform.localScale; item.gameObject.name = scene.m_Name; item.gameObject.SetActive(true); item.FadeIn(); items.Add(item); } } } else { VCEUICreationTypeItem item = VCEUICreationTypeItem.Instantiate(m_ItemPrefab); item.m_Scene = VCConfig.s_EditorScenes.Find(iter => iter.m_Id == 1); item.usage = 1; item.transform.parent = m_ItemPrefab.transform.parent; item.transform.localScale = m_ItemPrefab.transform.localScale; item.m_NameLabel.text = "New".ToLocalizationString(); item.gameObject.name = "New".ToLocalizationString(); item.gameObject.SetActive(true); item.FadeIn(); items.Add(item); item = VCEUICreationTypeItem.Instantiate(m_ItemPrefab); item.usage = 2; item.m_Scene = null; item.transform.parent = m_ItemPrefab.transform.parent; item.transform.localScale = m_ItemPrefab.transform.localScale; item.m_NameLabel.text = "Open".ToLocalizationString(); item.gameObject.name = "Open".ToLocalizationString(); item.gameObject.SetActive(true); item.FadeIn(); items.Add(item); } if (items.Count == 0 && parentId > 0) { VCEUICreationTypeItem item = VCEUICreationTypeItem.Instantiate(m_ItemPrefab); item.m_Scene = VCConfig.s_EditorScenes.Find(iter => iter.m_Id == parentId); item.usage = 3; item.transform.parent = m_ItemPrefab.transform.parent; item.transform.localScale = m_ItemPrefab.transform.localScale; item.m_NameLabel.text = "Template".ToLocalizationString(); item.gameObject.name = "Template".ToLocalizationString(); item.gameObject.SetActive(true); item.FadeIn(); items.Add(item); item = VCEUICreationTypeItem.Instantiate(m_ItemPrefab); item.m_Scene = VCConfig.s_EditorScenes.Find(iter => iter.m_Id == parentId); item.usage = 4; item.transform.parent = m_ItemPrefab.transform.parent; item.transform.localScale = m_ItemPrefab.transform.localScale; item.m_NameLabel.text = "Empty".ToLocalizationString(); item.gameObject.name = "Empty".ToLocalizationString(); item.gameObject.SetActive(true); item.FadeIn(); items.Add(item); } if (items.Count == 1) { items[0].transform.localPosition = new Vector3(-100, 100); } else if (items.Count == 2) { items[0].transform.localPosition = new Vector3(-200, 100); items[1].transform.localPosition = new Vector3(0, 100); } else if (items.Count == 3) { items[0].transform.localPosition = new Vector3(-300, 100); items[1].transform.localPosition = new Vector3(-100, 100); items[2].transform.localPosition = new Vector3(100, 100); } else if (items.Count == 4) { items[0].transform.localPosition = new Vector3(-200, 200); items[1].transform.localPosition = new Vector3(0, 200); items[2].transform.localPosition = new Vector3(-200, 0); items[3].transform.localPosition = new Vector3(0, 0); } else if (items.Count == 5) { items[0].transform.localPosition = new Vector3(-300, 200); items[1].transform.localPosition = new Vector3(-100, 200); items[2].transform.localPosition = new Vector3(100, 200); items[3].transform.localPosition = new Vector3(-200, 0); items[4].transform.localPosition = new Vector3(0, 0); } else if (items.Count == 6) { items[0].transform.localPosition = new Vector3(-300, 200); items[1].transform.localPosition = new Vector3(-100, 200); items[2].transform.localPosition = new Vector3(100, 200); items[3].transform.localPosition = new Vector3(-300, 0); items[4].transform.localPosition = new Vector3(-100, 0); items[5].transform.localPosition = new Vector3(100, 0); } else if (items.Count == 7) { items[0].transform.localPosition = new Vector3(-400, 200); items[1].transform.localPosition = new Vector3(-200, 200); items[2].transform.localPosition = new Vector3(0, 200); items[3].transform.localPosition = new Vector3(200, 200); items[4].transform.localPosition = new Vector3(-300, 0); items[5].transform.localPosition = new Vector3(-100, 0); items[6].transform.localPosition = new Vector3(100, 0); } else if (items.Count == 8) { items[0].transform.localPosition = new Vector3(-400, 200); items[1].transform.localPosition = new Vector3(-200, 200); items[2].transform.localPosition = new Vector3(0, 200); items[3].transform.localPosition = new Vector3(200, 200); items[4].transform.localPosition = new Vector3(-400, 0); items[5].transform.localPosition = new Vector3(-200, 0); items[6].transform.localPosition = new Vector3(0, 0); items[7].transform.localPosition = new Vector3(200, 0); } }