/// <summary> /// 交还图片显示控件 /// </summary> /// <param name="image"></param> void PushImageContainer(EmueraImage image) { image.Clear(); image.gameObject.SetActive(false); image.gameObject.name = "unused"; image.transform.SetParent(cache_images); cache_image_containers_.Push(image); }
void UpdateLine(Vector2 local, float display_height, int index, int delta) { var zero = begin_index; while (zero <= index && index < end_index) { var l = console_lines_[index % max_log_count]; if (l.position_y > local.y + display_height || l.position_y + l.height < local.y) { break; } for (int li = 0; li < l.units.Count; ++li) { var unit = l.units[li]; if (!unit.empty) { var lc = PullLine(); lc.line_desc = l; lc.UnitIdx = li; lc.Width = unit.width; lc.UpdateContent(); lc.SetPosition(unit.posx + local.x, local.y - lc.logic_y); display_lines_.Add(lc); } if (unit.image_indices != null && unit.image_indices.Count > 0) { var hash = l.LineNo * 1000 + li; EmueraImage ic = null; if (!display_images_.TryGetValue(hash, out ic)) { ic = PullImageContainer(); display_images_.Add(l.LineNo * 1000 + li, ic); } else { ic.Clear(); } ic.line_desc = l; ic.UnitIdx = li; ic.Width = unit.width; ic.UpdateContent(); ic.SetPosition(unit.posx + local.x, local.y - ic.logic_y); } } index += delta; } }