183 lines
6.4 KiB
C#
183 lines
6.4 KiB
C#
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<CyclingController>();
|
|
RankHead = transform.Find("RankHead").GetComponent<Image>();
|
|
RankHeadGradient = RankHead.GetComponent<UIGradient>();
|
|
Ranking = transform.Find("Ranking").GetComponent<Text>();
|
|
Name = transform.Find("Name").GetComponent<Text>();
|
|
Timer = transform.Find("Timer").GetComponent<Text>();
|
|
Gap = transform.Find("GAP").GetComponent<Text>();
|
|
Power = transform.Find("Power").GetComponent<Text>();
|
|
WKG = transform.Find("WKG").GetComponent<Text>();
|
|
HeartRate = transform.Find("Heart").GetComponent<Text>();
|
|
Source = transform.Find("Source").GetComponent<Text>();
|
|
Head = transform.Find("Head").GetComponent<RawImage>();
|
|
Country = transform.Find("Country").GetComponent<RawImage>();
|
|
outline = transform.GetComponent<Outline>();
|
|
BackGround = transform.GetComponent<Image>();
|
|
uIGradient = transform.GetComponent<UIGradient>();
|
|
}
|
|
|
|
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<Material>("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;
|
|
}
|
|
}
|
|
}
|