Exemple #1
0
        public CommonMaxMap(IMiniMapUiAdapter adapter) : base(adapter)
        {
            this.adapter   = adapter;
            adapter.Enable = false;
            if (UiCommon.UIManager.GetRootRenderMode().Equals(RenderMode.ScreenSpaceCamera))
            {
                uiCamera = UiCommon.UIManager.UICamera;
            }

            SpriteComon.GetInstance().PreparedSprites();
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
 private void PreparedSprite()
 {
     SpriteComon.GetInstance().PreparedSprites();
 }
Exemple #4
0
        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;
                }
            }
        }