using Assets.Scripts; using Assets.Scripts.UI.UIEffect; using UnityEngine; using UnityEngine.UI; namespace Assets.Scenes.Ride.Scripts { public class FinalRankingItemScript : MonoBehaviour { private RawImage Head; private RawImage Country; private Image RankHead; private Text Name; private Text Power; private Text Timer; private Text Gap; private Text WKG;//功体比 private Text Ranking; private Text HeartRate; private Text Source; private Outline outline; private Image BackGround; private UIGradient uIGradient; private UIGradient RankHeadGradient; private int _userId = 0; public int UserId { get { return _userId; } } private Texture countryTexture; #region 颜色常量 private Color RED = new Color(0.9764706f, 0.1882353f, 0.5254902f); private Color SHALLOW_RED = new Color(1f, 0.454902f, 0.5215687f); private Color PURPLE = new Color(0.1568628f, 0.4431373f, 0.8745098f); private Color SHALLOW_PURPLE = new Color(0.3843137f, 0.7764706f, 1f); private Color BLUE = new Color(0.4352941f, 0.3333333f, 0.9372549f); private Color SHALLOW_BLUE = new Color(0.772549f, 0.5529412f, 1f); private Color GREY = new Color(0.1333333f, 0.1333333f, 0.1764706f); private Color SHALLOW_GREY = new Color(0.2784314f, 0.2784314f, 0.3490196f); private Color WHITE = new Color(1f, 1f, 1f, 1f); private Color TRANSPARENT = new Color(1f, 1f, 1f, 0f); private Color BLACK = new Color(0.2078431f, 0.2078431f, 0.2627451f); private Color SHALLOW_WHITE = new Color(0.8352941f, 0.8352941f, 0.8352941f); #endregion CyclingController cyclingController; private void Awake() { cyclingController = FindObjectOfType(); RankHead = transform.Find("RankHead").GetComponent(); RankHeadGradient = RankHead.GetComponent(); Ranking = transform.Find("Ranking").GetComponent(); Name = transform.Find("Name").GetComponent(); Timer = transform.Find("Timer").GetComponent(); Gap = transform.Find("GAP").GetComponent(); Power = transform.Find("Power").GetComponent(); WKG = transform.Find("WKG").GetComponent(); HeartRate = transform.Find("Heart").GetComponent(); Source = transform.Find("Source").GetComponent(); Head = transform.Find("Head").GetComponent(); Country = transform.Find("Country").GetComponent(); outline = transform.GetComponent(); BackGround = transform.GetComponent(); uIGradient = transform.GetComponent(); } public void setRatio(string ratio) { WKG.text = ratio +"W/KG"; } public void setSource(string device) { Source.text = device; } public void setGap(string gap) { Gap.text = gap; } public void setHead(string url) { Utils.DisplayImage(Head, url, true); var rect = ((RectTransform)Head.transform).rect; Material material = Instantiate(Resources.Load("UI/Material/RoundedCornersTextureMaterial")); material.SetVector(Shader.PropertyToID("_WidthHeightRadius"), new Vector4(rect.width, rect.height, rect.height, 0)); Head.material = material; } public void setCountry(Texture texture) { Country.texture = texture; } public void setName(string name) { Name.text = name; } public void setPower(string power) { Power.text = power +"W"; } public void setTimer(string timer) { Timer.text = timer; } public void setRanking(int ranking) { switch (ranking) { //第一名的样式 case 1: RankHeadGradient.color1 = RED; RankHeadGradient.color2 = SHALLOW_RED; Name.color = BLACK; Timer.color = BLACK; uIGradient.color1 = WHITE; uIGradient.color2 = SHALLOW_WHITE; break; //第二名的样式 case 2: RankHeadGradient.color1 = PURPLE; RankHeadGradient.color2 = SHALLOW_PURPLE; Name.color = BLACK; Timer.color = BLACK; uIGradient.color1 = WHITE; uIGradient.color2 = SHALLOW_WHITE; break; //第三名的样式 case 3: RankHeadGradient.color1 = BLUE; RankHeadGradient.color2 = SHALLOW_BLUE; Name.color = BLACK; Timer.color = BLACK; uIGradient.color1 = WHITE; uIGradient.color2 = SHALLOW_WHITE; break; default: RankHeadGradient.color1 = BLACK; RankHeadGradient.color2 = BLACK; Name.color = WHITE; Timer.color = WHITE; uIGradient.color1 = GREY; uIGradient.color2 = SHALLOW_GREY; break; } Ranking.text = ranking.ToString().PadLeft(3,'0'); } public void setHeartRate(string heartRate) { if (!heartRate.Equals("0")) { HeartRate.text = heartRate + "bpm"; } else { HeartRate.text = "--bpm"; } } public void setUserId(int userId,string WxHeadImg) { _userId = userId; var isself = userId == cyclingController.currentPlayer.UserId; //头像根据是否是自己显示 if (isself) { Utils.DisplayImage(Head, WxHeadImg, true); } Head.gameObject.SetActive(isself); //边框样式 var color = isself ? WHITE : TRANSPARENT; outline.effectColor = color; } } }