public void Update(MiniMapTeamPlayInfo data, float rate, Vector2 selfPlayPos, float miniMapRepresentWHByRice, MapLevel mapLevel, bool isNoTeamPlayer) { UodateLocation(data, rate, ref selfPlayPos, miniMapRepresentWHByRice); UpdatePlayNum(data, mapLevel, isNoTeamPlayer); UpdatePlayStatue(ref selfPlayPos, data, mapLevel); UpdatePlayFaceDirection(data); }
private PlayerInfo CreatePlayerInfo(MiniMapTeamPlayInfo PlayInfo) { var info = new PlayerInfo(); info.Init(GameObject.Instantiate(FindChildGo("playerInfo").gameObject, FindChildGo("Show"))); info.UpdateInfo(PlayInfo.Num, PlayInfo.Color, PlayInfo.PlayerName, PlayInfo.EntityId, 0, playerInfoUIAdapter.CountdownTipDataList, playerInfoUIAdapter.GetGameRule(), playerInfoUIAdapter.HpPercent); info.UpdateLocation(PlayInfo.TopPos); return(info); }
private void UodateLocation(MiniMapTeamPlayInfo data, float rate, ref Vector2 selfPlayPos, float miniMapRepresentWHByRice) { var shiftVec = data.Pos.ShiftedUIVector2(); if (_isPlayer.Equals(data.IsPlayer) && _pos.Equals(shiftVec) && _selfPlayPos.Equals(selfPlayPos) && _rate.Equals(rate) && _mapWidth.Equals(miniMapRepresentWHByRice)) { return; } _isPlayer = data.IsPlayer; _pos = shiftVec; _selfPlayPos = selfPlayPos; _rate = rate; _mapWidth = miniMapRepresentWHByRice; if (data.IsPlayer == true) { rectTransform.anchoredPosition = _pos * rate; UIUtils.SetActive(direction, false); } else { var offset = new Vector2(rectTransform.sizeDelta.y + directionRectTf.sizeDelta.y, rectTransform.sizeDelta.y + directionRectTf.sizeDelta.y) / (2 * rate); var result = UIUtils.MathUtil.IsInSquare(selfPlayPos, miniMapRepresentWHByRice, miniMapRepresentWHByRice, offset, true, _pos); tran.GetComponent <RectTransform>().anchoredPosition = (selfPlayPos + result.ContactPoint) * rate; if (!result.IsContact) { UIUtils.SetActive(direction, false); } else { UIUtils.SetActive(direction, true); { Vector2 fromVector = new Vector2(0, 1); Vector2 toVector = tran.GetComponent <RectTransform>().anchoredPosition.normalized; float angle = UnityEngine.Vector2.Angle(fromVector, toVector); //求出两向量之间的夹角 UnityEngine.Vector3 normal = UnityEngine.Vector3.Cross(fromVector, toVector); //叉乘求出法线向量 if (normal.z < 0) { angle = 360 - angle; } direction.localEulerAngles = new UnityEngine.Vector3(0, 0, (angle + 180) % 360); } } } }
private PlayerInfo CreatePlayerInfo(MiniMapTeamPlayInfo PlayInfo) { var info = new PlayerInfo(); info.Init(GameObject.Instantiate(FindChildGo("playerInfo").gameObject, FindChildGo("Show"))); info.UpdateInfo(PlayInfo.Num, PlayInfo.Color, PlayInfo.PlayerName, PlayInfo.EntityId, 0, 1); if (PlayInfo.TopPos == Vector3.zero) { info.SetActive(false); } else { info.UpdateLocation(PlayInfo.TopPos); } return(info); }
private void RefreshPlayTeamItem(Transform tran, MiniMapTeamPlayInfo data) { //控制位置和方向 { var direction = tran.Find("direction"); if (direction == null) { return; } var directRT = direction.GetComponent <RectTransform>(); var tranRT = tran.GetComponent <RectTransform>(); var offset = new Vector2(tranRT.sizeDelta.y + directRT.sizeDelta.y, tranRT.sizeDelta.y + directRT.sizeDelta.y) / (2 * rate); var result = UIUtils.MathUtil.IsInSquare(PlayRefePosByRice, MaxMapRepresentWHByRice, MaxMapRepresentWHByRice, offset, true, data.Pos.ShiftedUIVector2()); tran.GetComponent <RectTransform>().anchoredPosition = playRefePosByPixel + result.ContactPoint * rate; if (!result.IsContact) { UIUtils.SetActive(direction, false); UIUtils.SetActive(tran, true); } else { UIUtils.SetActive(tran, false); UIUtils.SetActive(direction, false); // { // Vector2 fromVector = new Vector2(0, 1); // Vector2 toVector = tran.GetComponent<RectTransform>().anchoredPosition.normalized; // // float angle = UnityEngine.Vector2.Angle(fromVector, toVector); //求出两向量之间的夹角 // UnityEngine.Vector3 normal = UnityEngine.Vector3.Cross(fromVector, toVector);//叉乘求出法线向量 // if (normal.z < 0) // { // angle = 360 - angle; // } // direction.localEulerAngles = new UnityEngine.Vector3(0, 0, (angle + 180) % 360); // } } } //编号和编号背景色 playMarkUtil.UpdatePlayNumAndColor(tran, ref PlayRefePosByRice, data, false); //控制朝向 playMarkUtil.UpdatePlayFaceDirection(tran, data); }
private void UpdatePlayNum(MiniMapTeamPlayInfo data, MapLevel mapLevel, bool isNoTeamPlayer) { if (data.Num.Equals(_num) && data.Color.Equals(_color) && isNoTeamPlayer.Equals(_isNoTeamPlayer)) { return; } _isNoTeamPlayer = isNoTeamPlayer; _num = data.Num; _color = data.Color; //刷新编号 if (number.gameObject.activeSelf) { if (numberText) { if (data.IsPlayer) { if (isNoTeamPlayer) { numberText.text = string.Empty; } else { numberText.text = data.Num.ToString(); } } else { numberText.text = data.Num.ToString(); } } } //刷新编号背景图 // var temperBgSprite = SpriteComon.GetInstance().GetSpriteByName("mark"); // if (bgImage.sprite != temperBgSprite) // { // bgImage.sprite = temperBgSprite; // } bgImage.color = data.Color; }
public void UpdatePlayFaceDirection(Transform tran, MiniMapTeamPlayInfo data) { var faceDirection = tran.Find("faceDireciton"); if (faceDirection) { if (data.Statue != MiniMapPlayStatue.DEAD) //非死亡状态 { UIUtils.SetActive(faceDirection, true); float angular = data.FaceDirection % 360; angular = angular < 0 ? 360 + angular : angular; faceDirection.localEulerAngles = new UnityEngine.Vector3(0, 0, -angular); } else { UIUtils.SetActive(faceDirection, false); } } }
private void UpdatePlayFaceDirection(MiniMapTeamPlayInfo data) { if (data.Statue.Equals(_playStatue) && data.FaceDirection.Equals(_faceDirection)) { return; } _playStatue = data.Statue; _faceDirection = data.FaceDirection; if (data.Statue != MiniMapPlayStatue.DEAD) //非死亡状态 { UIUtils.SetActive(faceDirectionTf, true); float angular = data.FaceDirection % 360; angular = angular < 0 ? 360 + angular : angular; faceDirectionTf.localEulerAngles = new UnityEngine.Vector3(0, 0, -angular); } else { UIUtils.SetActive(faceDirectionTf, false); } }
public void Update(List <MiniMapTeamPlayInfo> TeamInfos, Vector2 selfPlayPos, float rate, float miniMapRepresentWHByRice, MapLevel mapLevel) { if (TeamInfos.Count > 0) { isNoTeamPlayer = (TeamInfos.Count == 1) ? true : false; for (int i = 0; i < TeamInfos.Count; i++) { MiniMapTeamPlayInfo data = TeamInfos[i]; PlayerItem playerItem; playerItemDic.TryGetValue(data.PlayerId, out playerItem); if (playerItem == null) { playerItem = new PlayerItem(GameObject.Instantiate(playItemModel, tran, true)); playerItemDic[data.PlayerId] = playerItem; } playerItem.IsOutDate = false; playerItem.Update(data, rate, selfPlayPos, miniMapRepresentWHByRice, mapLevel, isNoTeamPlayer); } } ClearOutDateItem(); }
public void OnFireOnce() { _playerEntity.statisticsData.Statistics.ShootingCount += 1; //服务端不需要处理,uicontext为null if (null != _uiContext && _uiContext.hasMap) { var map = _uiContext.map; MiniMapTeamPlayInfo playerInfo = null; foreach (var player in map.TeamInfos) { if (_playerEntity.playerInfo.PlayerId == player.PlayerId) { playerInfo = player; } } if (null != playerInfo) { playerInfo.IsShooting = true; playerInfo.ShootingCount++; } } }
public void OnBulletFire(PlayerWeaponController controller, WeaponSideCmd cmd) { controller.RelatedStatisticsData.ShootingCount += 1; //服务端不需要处理,uicontext为null if (null != _uiContext && _uiContext.hasMap) { var map = _uiContext.map; MiniMapTeamPlayInfo playerInfo = null; foreach (var player in map.TeamInfos) { if (controller.RelatedPlayerInfo.PlayerId == player.PlayerId) { playerInfo = player; } } if (null != playerInfo) { playerInfo.IsShooting = true; playerInfo.ShootingCount++; } } }
private void UpdatePlayStatue(ref Vector2 referPos, MiniMapTeamPlayInfo data, MapLevel mapLevel) { var shiftVec = data.Pos.ShiftedUIVector2(); if (referPos.Equals(_referPos) && data.Statue.Equals(_miniMapPlayStatue) && shiftVec.Equals(_infoPos) && data.ShootingCount.Equals(_shootingCount)) { return; } _referPos = referPos; _miniMapPlayStatue = data.Statue; _infoPos = shiftVec; _shootingCount = data.ShootingCount; switch (data.Statue) { case MiniMapPlayStatue.NORMAL: //常态 { UIUtils.SetActive(number, !MapLevel.Min.Equals(mapLevel)); UIUtils.SetActive(stateIcon, false); if (data.IsPlayer) { UIUtils.SetActive(loftIcon, false); } else { // UIUtils.SetActive(loftIcon, true); // var temperSprite = SpriteComon.GetInstance().GetSpriteByName("Loft_icon"); // if (temperSprite != null && loftIconImage.sprite != temperSprite) // { // loftIconImage.sprite = temperSprite; // } // // if (data.Pos.y > referPos.y) //上方 // { // if (loftIcon.transform.localScale != Vector3.one) // loftIcon.transform.localScale = Vector3.one; // } // else if (data.Pos.y <= referPos.y) //下方 // { // if (loftIcon.transform.localScale != new UnityEngine.Vector3(1, -1, 1)) // loftIcon.transform.localScale = new UnityEngine.Vector3(1, -1, 1); // } } if (data.ShootingCount > 0) //在射击状态下 { if (!tranCTween.ContainsKey(tran) || tranCTween[tran] == null) { var temperTween = UIUtils.CallTween(1, 1.5f, (value) => { bgRectTf.localScale = new UnityEngine.Vector3((float)value, (float)value, 1.0f); }, (value) => { bgRectTf.localScale = Vector3.one; data.ShootingCount--; tranCTween[tran].Kill(); tranCTween[tran] = null; }, 0.1f); if (!tranCTween.ContainsKey(tran)) { tranCTween.Add(tran, temperTween); } else { tranCTween[tran] = temperTween; } } } else { if (tranCTween.ContainsKey(tran) && tranCTween[tran] != null) { tranCTween[tran].Kill(); tranCTween[tran] = null; } if (bgRectTf.localScale != Vector3.one) { bgRectTf.localScale = Vector3.one; } } } break; case MiniMapPlayStatue.TIAOSAN: //跳伞 { UIUtils.SetActive(number, false); UIUtils.SetActive(loftIcon, false); UIUtils.SetActive(stateIcon, true); var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_parachute"); if (temperSprite != null && stateIconImage.sprite != temperSprite) { stateIconImage.sprite = temperSprite; } } break; case MiniMapPlayStatue.ZAIJU: //载具 { UIUtils.SetActive(number, false); UIUtils.SetActive(loftIcon, false); UIUtils.SetActive(stateIcon, true); var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_drive"); if (temperSprite != null && stateIconImage.sprite != temperSprite) { stateIconImage.sprite = temperSprite; } } break; case MiniMapPlayStatue.HURTED: //受伤 { UIUtils.SetActive(number, false); UIUtils.SetActive(loftIcon, false); UIUtils.SetActive(stateIcon, true); var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_hurt"); if (temperSprite != null && stateIconImage.sprite != temperSprite) { stateIconImage.sprite = temperSprite; } } break; case MiniMapPlayStatue.DEAD: //死亡 { UIUtils.SetActive(number, false); UIUtils.SetActive(loftIcon, false); UIUtils.SetActive(stateIcon, true); var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_die"); if (temperSprite != null && stateIconImage.sprite != temperSprite) { stateIconImage.sprite = temperSprite; } } break; default: { UIUtils.SetActive(number, false); UIUtils.SetActive(loftIcon, false); UIUtils.SetActive(stateIcon, false); } break; } }
public void UpdatePlayNumAndColor(Transform tran, ref Vector2 referPos, MiniMapTeamPlayInfo data, bool isMimiMap) { var numberBg = tran.Find("bg"); if (numberBg) { //刷新编号 var number = numberBg.Find("number"); if (number) { if (MapLevel.Min.Equals(adapter.MapLevel)) { number.gameObject.SetActive(false); } else { number.gameObject.SetActive(true); var numberText = number.GetComponent <Text>(); if (numberText) { if (data.IsPlayer) { if (isNoTeamPlayer) { numberText.text = ""; } else { numberText.text = data.Num.ToString(); } } else { numberText.text = data.Num.ToString(); } } } } var numberBgCom = numberBg.GetComponent <Image>(); var stateIcon = numberBg.Find("icon"); var loftIcon = numberBg.Find("loftIcon"); if (numberBgCom == null || stateIcon == null || loftIcon == null) { return; } var stateIconCom = stateIcon.GetComponent <Image>(); var loftIconCom = loftIcon.GetComponent <Image>(); //刷新编号背景图 // var temperBgSprite = SpriteComon.GetInstance().GetSpriteByName("mark"); // if (numberBgCom.sprite != temperBgSprite) // { // numberBgCom.sprite = temperBgSprite; // } numberBgCom.color = data.Color; switch (data.Statue) { case MiniMapPlayStatue.NORMAL: //常态 { UIUtils.SetActive(number, true); UIUtils.SetActive(stateIcon, false); if (data.IsPlayer) { UIUtils.SetActive(loftIcon, false); } else { UIUtils.SetActive(loftIcon, true); var temperSprite = SpriteComon.GetInstance().GetSpriteByName("Loft_icon"); if (temperSprite != null && loftIconCom.sprite != temperSprite) { loftIconCom.sprite = temperSprite; } var wpos = data.Pos.ShiftedUIVector2(); if (wpos.y > referPos.y) //上方 { if (loftIcon.transform.localScale != Vector3.one) { loftIcon.transform.localScale = Vector3.one; } } else if (wpos.y <= referPos.y) //下方 { if (loftIcon.transform.localScale != new UnityEngine.Vector3(1, -1, 1)) { loftIcon.transform.localScale = new UnityEngine.Vector3(1, -1, 1); } } } if (data.ShootingCount > 0) //在射击状态下 { if (!tranCTween.ContainsKey(tran) || tranCTween[tran] == null) { var temperTween = UIUtils.CallTween(1, 1.5f, (value) => { numberBg.GetComponent <RectTransform>().localScale = new UnityEngine.Vector3((float)value, (float)value, 1.0f); }, (value) => { numberBg.GetComponent <RectTransform>().localScale = Vector3.one; data.ShootingCount--; tranCTween[tran].Kill(); tranCTween[tran] = null; }, 0.1f); if (!tranCTween.ContainsKey(tran)) { tranCTween.Add(tran, temperTween); } else { tranCTween[tran] = temperTween; } } } else { if (tranCTween.ContainsKey(tran) && tranCTween[tran] != null) { tranCTween[tran].Kill(); tranCTween[tran] = null; } if (numberBg.GetComponent <RectTransform>().localScale != Vector3.one) { numberBg.GetComponent <RectTransform>().localScale = Vector3.one; } } } break; case MiniMapPlayStatue.TIAOSAN: //跳伞 { UIUtils.SetActive(number, false); UIUtils.SetActive(loftIcon, false); UIUtils.SetActive(stateIcon, true); var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_parachute"); if (temperSprite != null && stateIconCom.sprite != temperSprite) { stateIconCom.sprite = temperSprite; } } break; case MiniMapPlayStatue.ZAIJU: //载具 { UIUtils.SetActive(number, false); UIUtils.SetActive(loftIcon, false); UIUtils.SetActive(stateIcon, true); var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_drive"); if (temperSprite != null && stateIconCom.sprite != temperSprite) { stateIconCom.sprite = temperSprite; } } break; case MiniMapPlayStatue.HURTED: //受伤 { UIUtils.SetActive(number, false); UIUtils.SetActive(loftIcon, false); UIUtils.SetActive(stateIcon, true); var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_hurt"); if (temperSprite != null && stateIconCom.sprite != temperSprite) { stateIconCom.sprite = temperSprite; } } break; case MiniMapPlayStatue.DEAD: //死亡 { UIUtils.SetActive(number, false); UIUtils.SetActive(loftIcon, false); UIUtils.SetActive(stateIcon, true); var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_die"); if (temperSprite != null && stateIconCom.sprite != temperSprite) { stateIconCom.sprite = temperSprite; } } break; default: { UIUtils.SetActive(number, false); UIUtils.SetActive(loftIcon, false); UIUtils.SetActive(stateIcon, false); } break; } } }
public void UIUpdate(int frameTime) { if (SingletonManager.Get <FreeUiManager>().Contexts1 == null || SingletonManager.Get <FreeUiManager>().Contexts1.ui.uISessionEntity.uISession == null || SingletonManager.Get <FreeUiManager>().Contexts1.player.flagSelfEntity == null) { return; } UpdatePlaine(); PlayerEntity selfEntity = SingletonManager.Get <FreeUiManager>().Contexts1.ui.uI.Player; var data = SingletonManager.Get <FreeUiManager>().Contexts1.ui.map; data.TeamInfos.Clear(); _teamNums = ""; var map = SingletonManager.Get <FreeUiManager>().Contexts1.ui.map; map.TeamPlayerMarkInfos.Clear(); var modeId = SingletonManager.Get <FreeUiManager>().Contexts1.session.commonSession.RoomInfo.ModeId; foreach (PlayerEntity playerEntity in SingletonManager.Get <FreeUiManager>().Contexts1.player.GetEntities()) { try { if (playerEntity.hasPlayerInfo && playerEntity.hasPosition && ((!GameRules.IsBio(modeId) && playerEntity.playerInfo.TeamId == selfEntity.playerInfo.TeamId) || (GameRules.IsBio(modeId) && playerEntity.hasGamePlay && selfEntity.gamePlay.IsMatchJob(playerEntity.gamePlay.JobAttribute)))) { if (!infoMap.ContainsKey(playerEntity.playerInfo.PlayerId)) { MiniMapTeamPlayInfo info = new MiniMapTeamPlayInfo(playerEntity.playerInfo.PlayerId, playerEntity.playerInfo.EntityId, true, 1, MapUtils.TeamColor(playerEntity.playerInfo.Num), MiniMapPlayStatue.NORMAL, new Vector3(500, 0, 300), 45f, new List <MiniMapPlayMarkInfo>() { new MiniMapPlayMarkInfo(new Vector3(500, 250), 1, Color.black), }, false, 0, playerEntity.playerInfo.PlayerName, (int)playerEntity.gamePlay.CurHp, playerEntity.gamePlay.MaxHp, (int)playerEntity.gamePlay.InHurtedHp, false, playerEntity.position.Value); infoMap[playerEntity.playerInfo.PlayerId] = info; } // Vector3 leftMinPos = TerrainCommonData.leftMinPos; MiniMapTeamPlayInfo oneInfo = infoMap[playerEntity.playerInfo.PlayerId]; if (playerEntity == selfEntity) { oneInfo.IsPlayer = true; data.CurPlayer = oneInfo; } else { oneInfo.IsPlayer = false; } if (oneInfo.Num != playerEntity.playerInfo.Num) { oneInfo.Num = playerEntity.playerInfo.Num; oneInfo.PlayerName = playerEntity.playerInfo.PlayerName; oneInfo.Color = MapUtils.TeamColor(oneInfo.Num); } //pos,rot /*if (playerEntity.hasControlledVehicle) * { * //车上 * Transform trans = playerEntity.GetVehicleSeatTransform(SingletonManager.Get<FreeUiManager>().Contexts1.vehicle); * oneInfo.Pos = new Vector2(trans.position.x - leftMinPos.x, trans.position.z - leftMinPos.z); * oneInfo.FaceDirection = trans.eulerAngles.y; * } * else */ if (playerEntity.gamePlay.GameState == GameState.AirPlane) { //飞机上(位置已做过偏移,这里不再偏移) AirPlaneData planeData = data.PlaneData; oneInfo.Pos = new MapFixedVector2(planeData.Pos.WorldVector3().To2D()); oneInfo.Pos3D = new MapFixedVector3(planeData.Pos.WorldVector3()); oneInfo.FaceDirection = planeData.Direction; } else { // oneInfo.Pos = new Vector2(playerEntity.position.Value.x - leftMinPos.x, playerEntity.position.Value.z - leftMinPos.z); oneInfo.Pos = new MapFixedVector2(playerEntity.position.FixedVector3.To2D()); oneInfo.Pos3D = new MapFixedVector3(playerEntity.position.FixedVector3); oneInfo.FaceDirection = playerEntity.orientation.Yaw; } //Test Trace if (oneInfo.IsPlayer) { TerrainTestSystem.yaw = oneInfo.FaceDirection; } if (_teamNums.Equals("")) { _teamNums = oneInfo.Num.ToString(); } else { _teamNums += "|" + oneInfo.Num; } //status if (playerEntity.gamePlay.IsLifeState(EPlayerLifeState.Dead)) { oneInfo.Statue = MiniMapPlayStatue.DEAD; data.RemoveMapMark(playerEntity.playerInfo.PlayerId); } else if (playerEntity.gamePlay.IsLifeState(EPlayerLifeState.Dying)) { oneInfo.Statue = MiniMapPlayStatue.HURTED; } else { if (playerEntity.IsOnVehicle()) { oneInfo.Statue = MiniMapPlayStatue.ZAIJU; } else if (PlayerIsDrop(playerEntity)) { oneInfo.Statue = MiniMapPlayStatue.TIAOSAN; } else { oneInfo.Statue = MiniMapPlayStatue.NORMAL; } } //map mark oneInfo.MarkList.Clear(); if (oneInfo.IsPlayer) { foreach (var mark in data.MapMarks.Values) { oneInfo.MarkList.Add(mark); TeamPlayerMarkInfo lmark = new TeamPlayerMarkInfo(); lmark.Angel = CommonMathUtil.GetAngle(mark.Pos, oneInfo.Pos.ShiftedUIVector2()); lmark.MarkColor = MapUtils.TeamColor(mark.Num); map.TeamPlayerMarkInfos.Add(lmark); } TerrainTestSystem.mark = map.TeamPlayerMarkInfos.Count; } //New oneInfo.PlayerName = playerEntity.playerInfo.PlayerName; oneInfo.CurHp = (int)playerEntity.gamePlay.CurHp; oneInfo.MaxHp = playerEntity.gamePlay.MaxHp; oneInfo.CurHpInHurted = (int)playerEntity.gamePlay.InHurtedHp; oneInfo.IsMark = data.MapMarks.ContainsKey(oneInfo.PlayerId) ? true : false; oneInfo.TopPos = PlayerEntityUtility.GetPlayerTopPosition(playerEntity); oneInfo.EntityId = playerEntity.entityKey.Value.EntityId; data.TeamInfos.Add(oneInfo); } } catch (Exception e) { Debug.LogErrorFormat(e.Message); } } TerrainTestSystem.teamCnt = data.TeamInfos.Count; TerrainTestSystem.teamNum = _teamNums; }
private void RefreshTeamItem(Transform tran, MiniMapTeamPlayInfo data) { //刷新位置 var tranRt = tran.GetComponent <RectTransform>(); tranRt.anchoredPosition = -1 * new Vector2(0, teamInfoHeight + teamItemInterval); teamInfoHeight += modelHeight + teamItemInterval; //刷新编号和编号背景色 var numberGo = tran.Find("Number"); var numberImage = numberGo.GetComponent <Image>(); if (numberImage) { if (data.IsDead) //死亡状态 { numberImage.color = new Color(data.Color.r, data.Color.g, data.Color.b, 0.5f); } else { numberImage.color = data.Color; } var numberText = numberGo.Find("NumberText"); if (numberText) { var numberTextCom = numberText.GetComponent <Text>(); if (numberTextCom) { numberTextCom.text = data.Num.ToString(); } } } //刷新名字 var nameGo = tran.Find("Name"); var nameText = nameGo.GetComponent <Text>(); if (nameText) { nameText.text = data.PlayerName; if (data.IsDead) //死亡状态 { nameText.color = new Color(nameText.color.r, nameText.color.g, nameText.color.b, 0.5f); } else { nameText.color = new Color(nameText.color.r, nameText.color.g, nameText.color.b, 1); } } //刷新血量 var hpGo = tran.Find("Hp"); var hpSlider = hpGo.GetComponent <Slider>(); var fillBg = hpGo.Find("Background"); //血条背景 var fillParent = hpGo.Find("FillArea"); Transform fillFront = null; fillFront = fillParent.Find("Fill"); //血量填充 if (hpSlider && fillParent && fillFront && fillBg) { var fillFrontImgCom = fillFront.GetComponent <Image>(); if (data.IsDead) //死亡状态 { hpSlider.value = 0; } else if (data.IsInHurtedStatue) //受伤状态 { fillFrontImgCom.color = Color.red; hpSlider.value = (float)data.CurHpInHurted / data.MaxHp; } else //正常状态 { hpSlider.value = (float)data.CurHp / data.MaxHp; if (hpSlider.value < 0.3f) { fillFrontImgCom.color = new UnityEngine.Color(237f / 255f, 129f / 255f, 129f / 255f, 1.0f); } else { fillFrontImgCom.color = new UnityEngine.Color(247f / 255f, 238f / 255f, 201f / 255f, 1.0f); } } } //刷新标记 var markGo = tran.Find("Mark"); var markImgCom = markGo.GetComponent <Image>(); if (markGo != null && markImgCom != null) { if (data.IsDead || !data.IsMark) //死亡状态 获取没有标记的话 { markGo.gameObject.SetActive(false); } else { markGo.gameObject.SetActive(true); markImgCom.color = data.Color; } } //刷新状态 var statueBgGo = tran.Find("StatueBg"); var statue = statueBgGo.Find("Statue"); var statueImgCom = statue.GetComponent <Image>(); statueBgGo.gameObject.SetActive(true); if (statueBgGo != null && statue != null && statueImgCom != null) { switch (data.Statue) { case MiniMapPlayStatue.TIAOSAN: //跳伞 { var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_parachute"); if (temperSprite != null && temperSprite != statueImgCom.sprite) { statueImgCom.sprite = temperSprite; } } break; case MiniMapPlayStatue.ZAIJU: //载具 { var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_drive"); if (temperSprite != null && temperSprite != statueImgCom.sprite) { statueImgCom.sprite = temperSprite; } } break; case MiniMapPlayStatue.HURTED: //受伤 { var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_hurt"); if (temperSprite != null && temperSprite != statueImgCom.sprite) { statueImgCom.sprite = temperSprite; } } break; case MiniMapPlayStatue.DEAD: //死亡 { var temperSprite = SpriteComon.GetInstance().GetSpriteByName("icon_die"); if (temperSprite != null && temperSprite != statueImgCom.sprite) { statueImgCom.sprite = temperSprite; } } break; default: { statueBgGo.gameObject.SetActive(false); } break; } } }