您现在的位置是:首页 >技术教程 >Unity InputField滑动条网站首页技术教程

Unity InputField滑动条

Aster_. 2023-06-14 12:00:02
简介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

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。