InputField增加滑动条效果
类似图中效果
- 添加一个InputField组件
2 .添加一个Scrollbar放在InputField内
调整属性
-
调整InputFiled组件属性
需要将Scrollbal添加到InputField的scrollbar上 -
然后根据美术需求将位置进行调整,记得InputFiled下的Text不要被Scrollbar挡住了,然后写脚本监听InputFiled的输入事件onValueChanged,将内容更新即可
此时的scrollBar已经可以跟随文本框内容变化了。但是美术希望,文本没有超出这个输入框的时候,不展示ScrollBar。
那我们将ScrollBar也获取到,并控制就行了
自行实验一下,在文本内容变化的时候,scrollbar的属性value size的变化
value在0-1范围内,0的时候在顶部,1在底部
size则是滑动块的大小,滑动块越小,当然输入框内容超出的越多
所以可以根据size的大小,控制滑动块是否展示。
主要代码:文章来源:https://www.toymoban.com/news/detail-425835.html
private void HandleInput(string newValue)
{
descInput.text = newValue.Replace(" ", "\u00A0");
CtrlShowScrollBar(descInput.text);
}
private void CtrlShowScrollBar(string value)
{
float v = verticlScrollbar.size;
// 滑动条的控制
verticlScrollbar.gameObject.SetActive(v < 1f);
// 无滑动条时辅助文本展示到最上层
if (v >= 1 && decsText.offsetMax != Vector2.zero)
{
// left bottom
decsText.offsetMin = new Vector2(0,0);
// right top
decsText.offsetMax = new Vector2(0,0);
}
}
还有通过ScrollView的方法也可以实现,链接文章是可行的,还附有源码package包可以下载。https://www.jianshu.com/p/0aa6691e05b3文章来源地址https://www.toymoban.com/news/detail-425835.html
到了这里,关于Unity InputField滑动条的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!