示例#1
0
        // A log item is clicked, highlight it
        public void OnLogItemClicked(DebugLogItem item)
        {
            if (indexOfSelectedLogEntry != item.Index)
            {
                DeselectSelectedLogItem();

                indexOfSelectedLogEntry       = item.Index;
                positionOfSelectedLogEntry    = item.Index * logItemHeight;
                heightOfSelectedLogEntry      = item.CalculateExpandedHeight(item.ToString());
                deltaHeightOfSelectedLogEntry = heightOfSelectedLogEntry - logItemHeight;

                manager.SetSnapToBottom(false);
            }
            else
            {
                DeselectSelectedLogItem();
            }

            if (indexOfSelectedLogEntry >= currentTopIndex && indexOfSelectedLogEntry <= currentBottomIndex)
            {
                ColorLogItem(logItemsAtIndices[indexOfSelectedLogEntry], indexOfSelectedLogEntry);
            }

            CalculateContentHeight();

            HardResetItems();
            UpdateItemsInTheList(true);

            manager.ValidateScrollPosition();
        }
示例#2
0
 // Color a log item using its index
 private void ColorLogItem(DebugLogItem logItem, int index)
 {
     if (index == indexOfSelectedLogEntry)
     {
         logItem.Image.color = logItemSelectedColor;
     }
     else if (index % 2 == 0)
     {
         logItem.Image.color = logItemNormalColor1;
     }
     else
     {
         logItem.Image.color = logItemNormalColor2;
     }
 }
示例#3
0
        // Create (or unpool) a log item
        private void CreateLogItemAtIndex(int index)
        {
            DebugLogItem logItem = debugManager.PopLogItem();

            // Reposition the log item
            Vector2 anchoredPosition = new Vector2(1f, -index * logItemHeight);

            if (index > indexOfSelectedLogEntry)
            {
                anchoredPosition.y -= deltaHeightOfSelectedLogEntry;
            }

            logItem.Transform.anchoredPosition = anchoredPosition;

            // Color the log item
            ColorLogItem(logItem, index);

            // To access this log item easily in the future, add it to the dictionary
            logItemsAtIndices[index] = logItem;
        }
示例#4
0
 // Pool an unused log item
 public void PoolLogItem(DebugLogItem logItem)
 {
     logItem.gameObject.SetActive(false);
     pooledLogItems.Add(logItem);
 }