예제 #1
0
        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);
        }
예제 #2
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);
        }
예제 #3
0
        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());
            }
        }