void UpdateOption(Option option) { AutoLayoutGroup selector = null; Sprite[] list = null; Dictionary <string, Button> buttons = new Dictionary <string, Button>(); string def = ""; switch (option) { case (Option.Skin): selector = skinSelector; def = defaultSkin; break; case (Option.Background): selector = backgroundSelector; def = defaultBackground; break; } list = Resources.LoadAll <Sprite>(option.ToString() + "s"); selector.ClearChildren(); foreach (Sprite sprite in list) { Image image = new GameObject(sprite.name).AddComponent <Image>(); image.sprite = sprite; image.color = Color.white; image.material = null; image.raycastTarget = true; image.type = Image.Type.Simple; image.preserveAspect = true; Animator animator = image.gameObject.AddComponent <Animator>(); animator.runtimeAnimatorController = optionButtonAnimatorController; animator.updateMode = AnimatorUpdateMode.UnscaledTime; Button button = image.gameObject.AddComponent <Button>(); button.onClick.AddListener(delegate() { ChooseSprite(option, sprite); }); button.transition = Selectable.Transition.Animation; button.image = image; UIAudio audio = image.gameObject.AddComponent <UIAudio>(); audio.element = UIAudio.Element.Button; buttons.Add(sprite.name, button); if (sprite.name == PlayerPrefs.GetString(option.ToString(), def)) { image.color = selectedColour; switch (option) { case (Option.Skin): skin = sprite; foreach (Image i in skinnedImages) { i.sprite = sprite; } break; case (Option.Background): background = sprite; Background.UpdateBackgrounds(); break; } } image.transform.SetParent(selector.transform); } switch (option) { case (Option.Skin): skins = list; skinButtons = buttons; break; case (Option.Background): backgrounds = list; backgroundButtons = buttons; break; } selector.ReCalculate(); }