在实际项目中遇到了一个需求,是要根据用户传过来的数据来修改高亮闪烁的颜色
就是上述图片中红框圈中的Gradient的颜色。废话不多说,直接上代码`
private Gradient SetGradient()
{
Gradient gradient = new Gradient();
// 定义渐变的颜色关键帧
GradientColorKey[] colorKey = new GradientColorKey[2];
colorKey[0].color = _highlightColor;
colorKey[0].time = 0.0f; // 渐变开始
colorKey[1].color = _highlightColor;
colorKey[1].time = 1.0f; // 渐变结束
// 定义渐变的透明度关键帧
GradientAlphaKey[] alphaKey = new GradientAlphaKey[2];
alphaKey[0].alpha = 0.0f;
alphaKey[0].time = 0.0f;
alphaKey[1].alpha = 1.0f;
alphaKey[1].time = 1.0f;
// 应用关键帧到渐变
gradient.SetKeys(colorKey, alphaKey);
return gradient;
}`
上述代码中_highlightColor 是用户传进来的颜色,我这里用到是同一个颜色,如果想要不同的颜色,colorkey这个数组里 可以多设置几个,取决于你具体的需求。
具体使用方法:
private void ChangeGradient()
{
Highlighter highlighter = gameObject.GetComponent();
if (highlighter == null)
{
highlighter = obj.gameObject.AddComponent();
}
highlighter.tween = true;
highlighter.tweenGradient = SetGradient();
}
希望对您有所帮助!