private void OnPlayerSkinSelect(PlayerSkinStoreView obj) { playerSkinStoreViews[playerSkinController.SelectedSkinIndex].Unselect(); // Not the best way, accessing a controller and telling it what to do from a "View"... int index = playerSkinStoreViews.IndexOf(obj); playerSkinController.SetSelectedSkin(index); }
protected override void OnHide() { backButton.onClick.RemoveListener(OnBackButtonPressed); for (int i = 0; i < playerSkinStoreViews.Count; i++) { PlayerSkinStoreView playerSkinStoreView = playerSkinStoreViews[i]; playerSkinStoreView.Hide(); playerSkinStoreView.SelectEvent -= OnPlayerSkinSelect; playerSkinStoreView.TryUnlockEvent -= OnTryUnlockSkin; Destroy(playerSkinStoreView.gameObject); } playerSkinStoreViews.Clear(); }
protected override void OnShow() { // Make sure unlock popup isn't showing... HideUnlockPopup(); backButton.onClick.AddListener(OnBackButtonPressed); for (int i = 0; i < playerSkinController.PlayerSkinConfigs.Length; i++) { PlayerSkinStoreView playerSkinStoreView = Instantiate(playerSkinStoreViewPrefab, skinRectTransform); playerSkinStoreView.Show(playerSkinController.PlayerSkinConfigs[i], playerSkinController.SelectedSkinIndex == i); playerSkinStoreView.SelectEvent += OnPlayerSkinSelect; playerSkinStoreView.TryUnlockEvent += OnTryUnlockSkin; playerSkinStoreViews.Add(playerSkinStoreView); } }
private void OnTryUnlockSkin(PlayerSkinStoreView obj) { playerSkinConfigToUnlock = obj.PlayerSkinConfig; ShowUnlockPopup(); }