「Unity3D」TextMeshPro中的TMP_InputField,用来实现输入框的几个小问题

第一,正确设置Scrollbar。

设置Scrollbar之后,不能设置Text Component的Font Size为Auto Size,否则Scrollbar无法正确计算显示。

那么,要想自动适配字体大小,可以让Placeholder中的Font Size设置为Auto,这样用代码获取其Font Size再设置给Text Component。

但注意,Placeholder在InputField中以Graphic持有,需要转化一下,即:

cs 复制代码
this.inputField.textComponent.fontSize = (this.inputField.placeholder as TMP_Text).fontSize;

第二,多行输入对齐设置。

在有Scrollbar且可以输入多行的情况下,输入内容的对齐,取决于Text Area的Pivot,即:轴点在上就上对齐,轴点在下就下对齐。

第三,虚拟键盘不自动隐藏。

虚拟键盘会在失去焦点时自动隐藏,可以使用InputField上Image的raycastPadding,来让InputField的点击区域扩大,这样就可以在不扩大输入区域的时候,获得点击焦点,从而不让虚拟键盘退出。

第四,无法响应滑动与长按。

InputField的OnScroll是响应滚动条,OnDrag是响应选择文本,所以没有滑动多行文本与长按文本的事件,这个需要继承InputField,然后重写一些事件响应。

第五,虚拟键盘的高度计算。

参看之前的文章,有给出解决方案------使用C#获取Android虚拟键盘的高度

相关推荐
海尔辛1 小时前
Unity Mac 笔记本操作入门
macos·unity·游戏引擎
海尔辛5 小时前
UGUI Text/TextMeshPro字体组件
ui·unity·性能优化
海尔辛10 小时前
Unity UI 性能优化终极指南 — Image篇
ui·unity·性能优化
海尔辛11 小时前
[特殊字符] Unity UI 性能优化终极指南 — ScrollRect篇
ui·unity·性能优化
海尔辛13 小时前
# [特殊字符] Unity UI 性能优化终极指南 — LayoutGroup篇
ui·unity
程序员小刘13 小时前
【HarmonyOS 5】鸿蒙APP使用【团结引擎Unity】开发的案例教程
unity·华为·harmonyos
海尔辛19 小时前
[特殊字符] Unity 性能优化终极指南 — Text / TextMeshPro 组件篇
unity·性能优化·游戏引擎
程序猿多布1 天前
Unity + HybirdCLR热更新 入门篇
unity·hybirdclr
变身缎带1 天前
Unity中的MonoSingleton<T>与Singleton<T>
unity·单例模式·c#·游戏引擎
suixinger_lmh1 天前
功能结构整理
unity·设计模式·c#·源代码管理