using UnityEngine; using UnityEngine.UI; using EnhancedUI.EnhancedScroller; using EnhancedUI; using System; namespace EnhancedScrollerDemos.KeyControlGrid { /// /// This is the sub cell of the row cell /// public class RowCellView : MonoBehaviour { /// /// The underlying data source /// private Data _data; public GameObject container; /// /// The background image to show the highlight if selected /// public Image backgroundImage; /// /// A reference to the UI Text element to display the cell data /// public Text someTextText; /// /// The color to show when the cell is selected /// public Color selectedColor; /// /// The color to show when the cell is not selected /// public Color unselectedColor; /// /// This function just takes the Demo data and displays it /// /// public void SetData(Data data) { // set the underlying data source. This is used when // we need to refresh the cell view _data = data; // this cell was outside the range of the data, so we disable the container. // Note: We could have disable the cell gameobject instead of a child container, // but that can cause problems if you are trying to get components (disabled objects are ignored). container.SetActive(data != null); if (_data != null) { // update the UI text with the cell data someTextText.text = _data.someText; // call the refresh method which just sets the selection highlight RefreshCellView(); } } /// /// Called when the selected cell index is changed in the controller /// public void RefreshCellView() { if (_data != null) { // highlight the cell if necessary backgroundImage.color = _data.isSelected ? selectedColor : unselectedColor; } } } }