unity3d 如何自动激活TMP_InputField

xt0899hw  于 2023-03-13  发布在  其他
关注(0)|答案(1)|浏览(434)

我有两个统一的TMP_InputField。我试图自动聚焦并激活另一个,一旦第一个有输入。我尝试了以下方法,但由于某些原因,它对我不起作用。

using UnityEngine;
using UnityEngine.UI;
using TMPro;
using UnityEngine.EventSystems;

public class FocusBox : MonoBehaviour
{
    public TMP_InputField b1;
    public TMP_InputField b2;
 
    // Update is called once per frame
    private void Update()
    {
        if (b1.isFocused)
        {
            if (b1.text.Length > 0)
            {
                b2.Select();
                b1.DeactivateInputField();
            }

        }
        Debug.Log("is b1 focused after : " + b1.isFocused);

    }

}
13z8s7eq

13z8s7eq1#

不是特别确定你说的“有输入”到底是什么意思。
然而,我认为你可以在你的TMP_InputField上使用OnValueChanged事件。要么通过检查器分配一个回调,要么通过编程覆盖它。每次你的输入改变,你的回调都会被触发。

相关问题