Unity InputField滑动条

InputField增加滑动条效果
类似图中效果
在这里插入图片描述

  1. 添加一个InputField组件
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/e42d89eb00fd40f785dd67f0f561d76e.png

2 .添加一个Scrollbar放在InputField内
在这里插入图片描述
调整属性 在这里插入图片描述

  1. 调整InputFiled组件属性
    需要将Scrollbal添加到InputField的scrollbar上
    在这里插入图片描述

  2. 然后根据美术需求将位置进行调整,记得InputFiled下的Text不要被Scrollbar挡住了,然后写脚本监听InputFiled的输入事件onValueChanged,将内容更新即可

此时的scrollBar已经可以跟随文本框内容变化了。但是美术希望,文本没有超出这个输入框的时候,不展示ScrollBar。
那我们将ScrollBar也获取到,并控制就行了
自行实验一下,在文本内容变化的时候,scrollbar的属性value size的变化
value在0-1范围内,0的时候在顶部,1在底部
size则是滑动块的大小,滑动块越小,当然输入框内容超出的越多
所以可以根据size的大小,控制滑动块是否展示。
在这里插入图片描述

主要代码:

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值