private int CompareDistance(DisplayCaseCarousel _carouselA, DisplayCaseCarousel _carouselB) { if (carousels.Contains(_carouselA) && carousels.Contains(_carouselB)) { return(Mathf.Abs(carousels.IndexOf(_carouselA) - carousels.IndexOf(_carouselB))); } Debug.LogAssertion("Unable to compare distances - Carousels not found with our list"); return(0); }
/// <summary> /// Attempts to fetch and cache the ShaderModel objects found in the provided carousel. If no ShaderModel object is /// found within the provided carousel, we will not cache that specific ShaderModel. /// </summary> /// <param name="_carousel"></param> private IEnumerable <ShaderModel> FetchShaderModels(DisplayCaseCarousel _carousel) { foreach (DisplayCase _displayCase in _carousel.GetDisplayCases()) { ShaderModel _shaderModel = _displayCase.GetModel().GetComponent <ShaderModel>(); if (_shaderModel != null) { allShaderModels.Add(_shaderModel); } } return(allShaderModels); }
private void OnCarouselSelection(DisplayCaseCarousel _selectedCarousel) { foreach (DisplayCaseCarousel _carousel in carousels) { // Move carousels to new index _carousel.MoveTo(new Vector3( _carousel.staggerDisplayOffset.x * (_selectedCarousel.GetSelectedIndex() * -1), _carousel.transform.position.y, _carousel.transform.position.z), animationStaggerDelay * CompareDistance(_carousel, _selectedCarousel)); _carousel.Select(_selectedCarousel.GetSelectedIndex()); } }