You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:55:16