public virtual void OnSelectionChange(GameObject selectedObject)
    {
        if (_collection != null && !_isCollectionSelecting)
        {
            _isCollectionSelecting = true;

            for (int i = 0; i < _cache.Count; i++)
            {
                var child = _cache[i];
                if (child == selectedObject)
                {
                    _collection.SelectItem(i);
                    break;
                }
            }

            _isCollectionSelecting = false;
        }
    }
 public void OnSelectionChange(GameObject selectedObject)
 {
     if (_collection != null && !_isCollectionSelecting)
     {
         _isCollectionSelecting = true;
         for (var i = 0; i < transform.childCount; ++i)
         {
             var child = transform.GetChild(i).gameObject;
             if (selectedObject != child)
             {
                 continue;
             }
             int childNumber;
             if (int.TryParse(child.name, out childNumber))
             {
                 _collection.SelectItem(childNumber);
                 break;
             }
         }
         _isCollectionSelecting = false;
     }
 }