/// <summary>
        /// 设置击杀类型图标,爆头和击倒
        /// </summary>
        private void SetAtkInfoIcon(IKillInfoItem item, CellInfo cell)
        {
            var type = item.killType;

            UIUtils.SetEnable(cell.HeadShotIcon, (type & (int)EUIKillType.Crit) == (int)EUIKillType.Crit);
            UIUtils.SetEnable(cell.HurtShotIcon, (type & (int)EUIKillType.Hit) == (int)EUIKillType.Hit);
        }
        /// <summary>
        /// 设置击杀信息中死者和击杀者信息
        /// </summary>
        private void SetDeadAndKillerInfo(IKillInfoItem item, CellInfo cell)
        {
            CellInfo cellInfo = cell;

            cellInfo.DeadName.text = item.deadName;
            float tempWidth1 = cellInfo.DeadName.cachedTextGeneratorForLayout.GetPreferredWidth(item.deadName, settings) / cellInfo.DeadName.pixelsPerUnit;

            cellInfo.DeadName.rectTransform.sizeDelta = new Vector2(tempWidth1, _cellViewHeight);

            cellInfo.KillerName.text = item.killerName;
            float tempWidth2 = cellInfo.DeadName.cachedTextGeneratorForLayout.GetPreferredWidth(item.killerName, settings) / cellInfo.KillerName.pixelsPerUnit;

            cellInfo.KillerName.rectTransform.sizeDelta = new Vector2(tempWidth2, _cellViewHeight);
            Color color          = _normalColor;
            bool  isKillerInTeam = item.killerTeamId == _adapter.SelfTeamId;
            bool  isDeadInTeam   = item.deadTeamId == _adapter.SelfTeamId;


            if (isKillerInTeam && !isDeadInTeam)
            {
                color = _killerPlayerColor;
            }
            else if (isDeadInTeam)
            {
                color = _deadPlayerColor;
            }

            cellInfo.DeadName.color   = color;
            cellInfo.KillerName.color = color;
        }
        /// <summary>
        /// 设置击杀信息中死者和击杀者信息
        /// </summary>
        private void SetDeadAndKillerInfo(IKillInfoItem item, CellInfo cell)
        {
            CellInfo cellInfo = cell;

            cellInfo.DeadName.text = item.deadName;
            float tempWidth1 = cellInfo.DeadName.preferredWidth;

            cellInfo.DeadName.rectTransform.sizeDelta = new Vector2(tempWidth1, _cellViewHeight);

            cellInfo.KillerName.text = item.killerName;
            float tempWidth2 = cellInfo.KillerName.preferredWidth;

            cellInfo.KillerName.rectTransform.sizeDelta = new Vector2(tempWidth2, _cellViewHeight);
            bool isKillerInTeam = item.killerTeamId == _adapter.SelfTeamId;
            bool isDeadInTeam   = item.deadTeamId == _adapter.SelfTeamId;

            cellInfo.KillerName.color = isKillerInTeam ? _teamMateColor : _nonTeamMateColor;
            cellInfo.DeadName.color   = isDeadInTeam ? _teamMateColor : _nonTeamMateColor;
        }
 /// <summary>
 /// 更新击杀信息
 /// </summary>
 private void UpdateKillMessageInfo()
 {
     for (int i = 0; i < _cellInfoRefList.Count; i++)
     {
         _curCellIndex = i;
         var tf   = _infoItemList[_curCellIndex];
         var cell = _cellInfoRefList[i];
         if (_adapter.KillInfos.Count > i)
         {
             IKillInfoItem item = _adapter.KillInfos[i];
             UpdateMessageToCell(item, cell);
             UIUtils.SetEnable(cell.RootCanvas, true);
             UpdateLayout(item, cell);
         }
         else
         {
             UIUtils.SetEnable(cell.RootCanvas, false);
         }
     }
 }
        /// <summary>
        /// 设置击杀信息中死亡条件对应的图标
        /// </summary>
        private void SetDeathTypeIcon(IKillInfoItem item, CellInfo cell)
        {
            string bundleName    = AssetBundleConstant.Icon_Killinfo;
            String deathIconName = null;

            UIUtils.SetActive(cell.KillerName.transform, true);

            var deathType = item.deathType;

            cell.DeathTypeIcon.rectTransform.sizeDelta = new Vector2(0, _cellViewHeight);
            if (deathType <= 0)
            {
                return;
            }
            switch (deathType)
            {
            case EUIDeadType.Weapon:
                bundleName    = item.weaponAsset.BundleName;
                deathIconName = item.weaponAsset.AssetName;
                break;

            default:
                var cfg           = SingletonManager.Get <TypeForDeathConfigManager>();
                var deathTypeItem = cfg.GetConfigById((int)deathType);
                bundleName    = deathTypeItem.BundleName;
                deathIconName = deathTypeItem.KillIcon;
                break;
            }


            if (null != bundleName && null != deathIconName)
            {
                AssetInfo assetInfo = new AssetInfo(bundleName, deathIconName);
                if (_assetPool.ContainsKey(assetInfo))
                {
                    var image = _assetPool[assetInfo];
                    cell.DeathTypeIcon.sprite = image;
                    if (image == null || image.rect.height == 0)
                    {
                        return;
                    }
                    cell.DeathTypeIcon.rectTransform.sizeDelta =
                        new Vector2(_cellViewHeight * image.rect.width / image.rect.height, _cellViewHeight);
                }
                else
                {
                    _assetPool.Add(assetInfo, new Sprite());
                    Loader.RetriveSpriteAsync(bundleName, deathIconName, (sprite) =>
                    {
                        if (sprite == null || sprite.rect.height == 0)
                        {
                            return;
                        }
                        cell.DeathTypeIcon.sprite = sprite;
                        cell.DeathTypeIcon.rectTransform.sizeDelta =
                            new Vector2(_cellViewHeight * sprite.rect.width / sprite.rect.height, _cellViewHeight);
                        _assetPool[assetInfo] = sprite;
                        UpdateLayout(item, cell);
                    });
                }
            }
        }
 //private TextGenerationSettings settings;
 /// <summary>
 /// 更新击杀信息
 /// </summary>
 private void UpdateMessageToCell(IKillInfoItem item, CellInfo cell)
 {
     SetDeadAndKillerInfo(item, cell);
     SetDeathTypeIcon(item, cell);
     SetAtkInfoIcon(item, cell);
 }
        private void UpdateLayout(IKillInfoItem item, CellInfo cell)
        {
            Vector2 totalWidth = new Vector2();

            if (cell.DeadName.enabled)
            {
                var size = cell.DeadName.rectTransform.sizeDelta;
                cell.DeadName.rectTransform.anchoredPosition = totalWidth;
                totalWidth -= new Vector2(size.x, 0);
            }

            var haveHurtIcon     = cell.HurtShotIcon.enabled;
            var haveDeathIcon    = cell.DeathTypeIcon.enabled;
            var haveKillerName   = cell.KillerName.rectTransform.sizeDelta.x > 0;
            var haveHeadShotIcon = cell.HeadShotIcon.enabled;

            if (haveHurtIcon || haveDeathIcon)//icon和text留20pixel的空隙
            {
                totalWidth -= new Vector2(20, 0);
            }

            if (haveHurtIcon)
            {
                var size = (cell.HurtShotIcon.rectTransform).sizeDelta;
                (cell.HurtShotIcon.rectTransform).anchoredPosition = totalWidth;
                totalWidth -= new Vector2(size.x, 0);
            }
            if (haveDeathIcon)
            {
                if (haveHurtIcon)
                {
                    totalWidth -= new Vector2(5, 0);                                               //icon和icon之间留5pixel
                }
                if (item.deathType == EUIDeadType.Weapon || item.deathType == EUIDeadType.Unarmed) //需要翻转
                {
                    cell.DeathTypeIcon.rectTransform.localScale = new Vector3(-1, 1, 1);
                    var size = (cell.DeathTypeIcon).rectTransform.sizeDelta;
                    totalWidth -= new Vector2(size.x, 0);
                    cell.DeathTypeIcon.rectTransform.anchoredPosition = totalWidth;
                }
                else
                {
                    cell.DeathTypeIcon.rectTransform.localScale = new Vector3(1, 1, 1);
                    var size = (cell.DeathTypeIcon).rectTransform.sizeDelta;
                    cell.DeathTypeIcon.rectTransform.anchoredPosition = totalWidth;
                    totalWidth -= new Vector2(size.x, 0);
                }
            }

            if (haveKillerName)
            {
                totalWidth -= new Vector2(20, 0);

                var size = (cell.KillerName).rectTransform.sizeDelta;
                cell.KillerName.rectTransform.anchoredPosition = totalWidth;
                totalWidth -= new Vector2(size.x, 0);
            }

            if (haveHeadShotIcon)
            {
                totalWidth -= new Vector2(20, 0);

                var size = (cell.HeadShotIcon.rectTransform).sizeDelta;
                (cell.HeadShotIcon.rectTransform).anchoredPosition = totalWidth;
                totalWidth -= new Vector2(size.x, 0);
            }

            (cell.Root as RectTransform).sizeDelta = new Vector2(-totalWidth.x, _cellViewHeight);
        }