например,
Код: Выделить всё
[HarmonyPatch]
public class MyPatchClass {
[HarmonyPrefix]
[HarmonyPatch(typeof(CharacterDialougeTree), nameof(CharacterDialougeTree.StartConversation))]
public static void StartConversation(){
GameObject inputFieldObject = new GameObject("InputField");
inputFieldObject.transform.SetParent(rectangleObject.transform, false);
// (Placeholder)
TMP_Text placeholderText = new GameObject("Placeholder").AddComponent();
placeholderText.transform.SetParent(inputFieldObject.transform, false);
// (Text Component)
Text inputText = new GameObject("inputText").AddComponent();
inputText.transform.SetParent(inputFieldObject.transform, false);
TMP_InputField inputField = inputFieldObject.AddComponent();
// RectTransform
RectTransform inputRectTransform = inputFieldObject.GetComponent();
// binding
inputField.placeholder = placeholderText;
inputField.onEndEdit.AddListener(OnEndEdit);
inputField.onValueChanged.AddListener(OnValueChanged);
inputField.Select();
inputField.ActivateInputField();
return false;
}
private static void OnValueChanged(string input) {
GameObject textObject = GameObject.Find("inputText");
Text textComponent = textObject.GetComponent();
textComponent.text = input;
}
private static void OnEndEdit(string input)
{
CallGeminiApi(input);
}
}
- заполнительText и inputText не отображаются.
невозможно сфокусироваться на поле ввода вручную. - невозможно вызвать onEndEdit при нажатии Enter.
- автоматическая фокусировка на поле ввода. inputField, но не могу ввести
Я надеюсь, что он может работать как обычное поле ввода, позволяющее пользователю вводить его.
Но сейчас я не могу сосредоточиться на этом, а если и могу, то все равно не могу печатать.
Подробнее здесь: https://stackoverflow.com/questions/793 ... th-harmony