编辑器文本渐变可编辑建议


QQ截图20201124101836.png

如图,谷主有没有考虑做一下文本渐变可让美术直接在编辑器里直接设置的功能,很多时候的需求是一整段都是同一个上下渐变,感觉会更方便一点
否则就得再沟通策划去配置多语言文本加上颜色ubb
已邀请:

谷主

赞同来自:

以后优化

SunHowe

赞同来自:

        /// <summary>
/// 渐变色
/// </summary>
public Color32 gradientColor
{
get => _textField.textFormat.gradientColor;
set
{
var tf = _textField.textFormat;

if (value == null)
{
if (tf.gradientColor == null)
return;

tf.gradientColor = null;
}
else if (tf.gradientColor == value)
{
// do nothing
}
else if (tf.gradientColor == null)
{
tf.gradientColor = new Color32[4];
value.CopyTo(this.gradientColor, 0);
}
else
{
value.CopyTo(this.gradientColor, 0);
}

_textField.textFormat = tf;
UpdateGear(4);
}
}



public void UpdateGradientColor(
Color32 leftTop, Color32 leftBottom, Color32 rightTop, Color32 rightBottom)
{
var tf = _textField.textFormat;

var buffer = tf.gradientColor ??= new Color32[4];
buffer[0] = leftTop;
buffer[1] = leftBottom;
buffer[2] = rightTop;
buffer[3] = rightBottom;

this.gradientColor = buffer;
}

public void UpdateVerticalGradientColor(Color32 top, Color32 bottom)
{
UpdateGradientColor(top, bottom, top, bottom);
}

public void UpdateHorizontalGradientColor(Color32 left, Color32 right)
{
UpdateGradientColor(left, left, right, right);
}
在GTextField中补充这段代码,然后就可以通过代码直接设置TextField的渐变色,例如:
frame.asLabel.GetTextField().UpdateHorizontalGradientColor(Color.white, Color.black);

可配合上面插件在初始化时读取自定义数据,设置该值。

SunHowe

赞同来自:

在上面bingo2009发的插件的基础上进行魔改,配合上面我发的运行时代码,无需借助ubb语法可直接使用的文本渐变功能(编辑器+运行时代码)可参考:
https://github.com/SunHowe/Fai ... -Text

要回复问题请先登录注册