powerfun-unity/Assets/Scripts/Scenes/Ride/Competiton/FinalRankingItemScript.cs

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(double? heartRate)
{
if (heartRate.HasValue)
{
HeartRate.text = heartRate + "bpm";
}
else
{
HeartRate.text = "--bpm";
}
}
public void setUserId(int userId,string WxHeadImg)
{
_userId = userId;
var isself = userId == cyclingController.currentPlayer.UserId && !cyclingController.isWatch;
//头像根据是否是自己显示
if (isself)
{
Utils.DisplayImage(Head, WxHeadImg, true);
}
Head.gameObject.SetActive(isself);
//边框样式
var color = isself ? WHITE : TRANSPARENT;
//outline.effectColor = color;
}
}
}