//drops list down private void ExpandList() { isExpanded = true; int count = Mathf.Min(ItemList.Count, dropDownItems.Count); for (int i = 0; i < count; ++i) { #if UNITY_3_5 dropDownItems[i].gameObject.SetActiveRecursively(true); dropDownItems[i].upDownHoverBtn.SetState(); //deals with how active recursive needs to work in Unity 3.x #else dropDownItems[i].gameObject.SetActive(true); #endif } tk2dUIDropDownItem selectedItem = dropDownItems[index]; if (selectedItem.upDownHoverBtn != null) { selectedItem.upDownHoverBtn.IsOver = true; } }
//clones another dropdown item from template private tk2dUIDropDownItem CreateAnotherDropDownItem() { GameObject go = Instantiate(dropDownItemTemplate.gameObject) as GameObject; go.name = "DropDownItem"; go.transform.parent = transform; go.transform.localPosition = dropDownItemTemplate.transform.localPosition; go.transform.localRotation = dropDownItemTemplate.transform.localRotation; go.transform.localScale = dropDownItemTemplate.transform.localScale; tk2dUIDropDownItem item = go.GetComponent <tk2dUIDropDownItem>(); item.OnItemSelected += ItemSelected; tk2dUIUpDownHoverButton itemUpDownHoverBtn = go.GetComponent <tk2dUIUpDownHoverButton>(); item.upDownHoverBtn = itemUpDownHoverBtn; itemUpDownHoverBtn.OnToggleOver += DropDownItemHoverBtnToggle; #if UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5 || UNITY_3_6 || UNITY_3_7 || UNITY_3_8 || UNITY_3_9 go.SetActiveRecursively(false); #endif return(item); }
//when an item in list is selected private void ItemSelected(tk2dUIDropDownItem item) { if (isExpanded) { CollapseList(); } Index = item.Index; }
public void OnSceneGUI() { bool wasChange = false; tk2dUIDropDownMenu dropdownMenu = (tk2dUIDropDownMenu)target; tk2dUIDropDownItem dropdownItemTemplate = dropdownMenu.dropDownItemTemplate; // Get rescaled transforms Matrix4x4 m = dropdownMenu.transform.localToWorldMatrix; Vector3 up = m.MultiplyVector(Vector3.up); // Vector3 right = m.MultiplyVector(Vector3.right); if (dropdownMenu.MenuLayoutItem == null) { float newDropDownButtonHeight = tk2dUIControlsHelperEditor.DrawLengthHandles("Dropdown Button Height", dropdownMenu.height, dropdownMenu.transform.position + (up * (dropdownMenu.height / 2)), -up, Color.red, .15f, .3f, .05f); if (newDropDownButtonHeight != dropdownMenu.height) { tk2dUndo.RecordObject(dropdownMenu, "Dropdown Button Height Changed"); dropdownMenu.height = newDropDownButtonHeight; wasChange = true; } } if (dropdownItemTemplate != null) { float yPosDropdownItemTemplate = (dropdownMenu.MenuLayoutItem != null) ? dropdownMenu.MenuLayoutItem.bMin.y : (-dropdownMenu.height); if (dropdownItemTemplate.transform.localPosition.y != yPosDropdownItemTemplate) { dropdownItemTemplate.transform.localPosition = new Vector3(dropdownItemTemplate.transform.localPosition.x, yPosDropdownItemTemplate, dropdownItemTemplate.transform.localPosition.z); tk2dUtil.SetDirty(dropdownItemTemplate.transform); } if (dropdownMenu.TemplateLayoutItem == null) { float newDropDownItemTemplateHeight = tk2dUIControlsHelperEditor.DrawLengthHandles("Dropdown Item Template Height", dropdownItemTemplate.height, dropdownMenu.transform.position - (up * (dropdownMenu.height / 2)), -up, Color.blue, .15f, .4f, .05f); if (newDropDownItemTemplateHeight != dropdownItemTemplate.height) { tk2dUndo.RecordObject(dropdownItemTemplate, "Dropdown Template Height Changed"); dropdownItemTemplate.height = newDropDownItemTemplateHeight; tk2dUtil.SetDirty(dropdownItemTemplate); } } } if (wasChange) { tk2dUtil.SetDirty(dropdownMenu); } }
//drops list down private void ExpandList() { isExpanded = true; foreach (tk2dUIDropDownItem item in dropDownItems) { #if UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5 || UNITY_3_6 || UNITY_3_7 || UNITY_3_8 || UNITY_3_9 item.gameObject.SetActiveRecursively(true); item.upDownHoverBtn.SetState(); //deals with how active recursive needs to work in Unity 3.x #else item.gameObject.SetActive(true); #endif } tk2dUIDropDownItem selectedItem = dropDownItems[index]; if (selectedItem.upDownHoverBtn != null) { selectedItem.upDownHoverBtn.IsOver = true; } }