以InputField为例子,InputField只有在选中时,才会出现输入光标,并且可以输入字符。
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems; // 引用 EventSystems 命名空间
public class ActivateInputFieldOnStart : MonoBehaviour
{
public InputField inputField;
void Start()
{
// 激活 InputField
inputField.Select();
inputField.ActivateInputField();
// 将 InputField 设置为当前选中的对象
EventSystem.current.SetSelectedGameObject(inputField.gameObject, null);
// 可选:等待一帧,然后再次确认设置
StartCoroutine(ReactivateInputField());
}
private IEnumerator ReactivateInputField()
{
yield return null; // 等待直到下一帧
inputField.Select();
inputField.ActivateInputField();
EventSystem.current.SetSelectedGameObject(inputField.gameObject, null);
}
}
利用引擎的EventSystem,可以在运行开始时,就选中输入组件,进行输入