public async Task Setup() { thisWindow = this.gameObject; // Populate our dictionary of option names -> gameobjects for (int i = 0; i < dropdownArray.Length; ++i) { Dropdown dropdown = dropdownArray[i]; ListOption script = dropdown.GetComponent <ListOption>(); if (!script) { throw new System.Exception("Option dropdown does not have a ListOption script attached!"); } objectDictionary.Add(script.GetName(), dropdown.gameObject); } for (int i = 0; i < toggleArray.Length; ++i) { Toggle toggle = toggleArray[i]; ToggleOption script = toggle.GetComponent <ToggleOption>(); if (!script) { throw new System.Exception("Option toggle does not have a ToggleOption script attached!"); } objectDictionary.Add(script.GetName(), toggle.gameObject); } // See note below await DisplaySelectedOptionsEvent(); toggleArray = null; dropdownArray = null; }