/// <summary> /// Disposes of all created AssetButtons and clears the list. /// </summary> public void Dispose() { for (int i = 0; i < assetButtons.Count; i++) { Object.Destroy(assetButtons[i].transform.parent.gameObject); } assetButtons.Clear(); activeAssetButton = null; }
/// <summary> /// Enables a new asset button by making it interactable, and disabling the old one by making it non interactable. /// </summary> /// <param name="newAssetButton"> The new button to set as interactable. </param> public void EnableNewTokenButton(ITradableAssetButton newAssetButton) { if (activeAssetButton != null) { activeAssetButton.Button.interactable = true; } newAssetButton.Button.interactable = false; activeAssetButton = newAssetButton; OnActiveButtonChanged?.Invoke(activeAssetButton); }
/// <summary> /// Removes a TradableAsset's button from the list of buttons, and destroys the gameobject. /// </summary> /// <param name="assetToRemove"> The TradableAsset to remove. </param> private void RemoveButton(TradableAsset assetToRemove) { for (int i = 0; i < assetButtons.Count; i++) { ITradableAssetButton assetButton = assetButtons[i]; if (assetButton.ButtonInfo == assetToRemove) { if (assetButton == activeAssetButton) { assetButtons[0].ButtonLeftClicked(); } assetButtons.Remove(assetButton); OnTradableAssetButtonRemoved?.Invoke(assetButton); return; } } }