コード例 #1
0
 public void EntryChangedContent(RouletteEntry entry, int prevContentId, int contentId)
 {
     if (rouletteType != RouletteType.Linear)
     {
         return;
     }
     ContentInEntries.Remove(prevContentId);
     ContentInEntries.Add(contentId, entry);
 }
コード例 #2
0
        /// <summary>
        /// Get the object of the centered RouletteEntry.
        /// The centered RouletteEntry is found by comparing which one is the closest
        /// to the center.
        /// </summary>
        public RouletteEntry GetCenteredEntry()
        {
            var           minPosition = Mathf.Infinity;
            float         position;
            RouletteEntry candidateEntry = null;

            switch (direction)
            {
            case Direction.Vertical:
                foreach (RouletteEntry rouletteEntry in rouletteEntries)
                {
                    position = Mathf.Abs(rouletteEntry.transform.localPosition.y);
                    if (position < minPosition)
                    {
                        minPosition    = position;
                        candidateEntry = rouletteEntry;
                    }
                }
                break;

            case Direction.Horizontal:
                foreach (RouletteEntry rouletteEntry in rouletteEntries)
                {
                    position = Mathf.Abs(rouletteEntry.transform.localPosition.x);
                    if (position < minPosition)
                    {
                        minPosition    = position;
                        candidateEntry = rouletteEntry;
                    }
                }
                break;

            case Direction.Radial:
                foreach (var rouletteEntry in rouletteEntries)
                {
                    position = Mathf.Abs(Mathf.DeltaAngle(angleStart, rouletteEntry.AnglePos));

                    if (position < minPosition)
                    {
                        minPosition    = position;
                        candidateEntry = rouletteEntry;
                    }
                }
                break;
            }

            return(candidateEntry);
        }