Unity AR项目:实现Input Field文本向另一输入框转移且支持编辑的问题
解决Unity中Input Field文本跨输入框转移的问题
原代码的核心问题
- 错误读取Input Field的
Text组件文本:Input Field的输入内容需从自身InputField组件的text属性获取,而非内部用于显示的Text子组件 - 变量覆盖与对象混淆:方法内声明的局部
secondInput覆盖了成员变量,且错误地从textDisplay对象查找InputField组件,而非目标输入框对象
修正后的代码
using UnityEngine; using UnityEngine.UI; public class RemarksTransfer : MonoBehaviour { // 源输入框(直接引用InputField组件,避免重复GetComponent) public InputField sourceInputField; // 目标输入框(支持编辑) public InputField targetInputField; // 可选:用于额外显示的Text组件(如果需要保留原显示功能) public Text textDisplay; public void TransferRemarks() { // 获取源输入框的文本内容 string remarks = sourceInputField.text; // 同步到显示文本(如果启用了textDisplay) if (textDisplay != null) { textDisplay.text = remarks; } // 同步到目标输入框,赋值后仍保持可编辑状态 if (targetInputField != null) { targetInputField.text = remarks; } } }
编辑器配置步骤
- 将脚本挂载到任意UI相关GameObject(比如Canvas)上
- 在Inspector面板中,把源输入框拖入
sourceInputField字段 - 把目标输入框拖入
targetInputField字段 - 若需要保留文本显示功能,将对应的Text组件拖入
textDisplay字段 - 给触发转移的按钮绑定
RemarksTransfer脚本的TransferRemarks方法
关键说明
- 直接引用
InputField组件,减少GetComponent调用,提升运行效率 - 加入空值判断,避免因未赋值组件导致的空引用报错
- 目标输入框赋值
text属性后,完全保留可编辑特性,满足需求
内容的提问来源于stack exchange,提问作者Brendonn
相关产品推荐
相关产品推荐

