Unity3d 是否可以在unity中的退格中获取已删除/删除的字符?

Unity3d 是否可以在unity中的退格中获取已删除/删除的字符?,unity3d,Unity3d,我想知道unity中backspace上删除的字符。我需要检查字符串的特定结束字符 例如abcd 89> 如果字符串以“>”结尾,则检查条件,并将基于此执行一些操作 此检查在backspace上进行,但在按backspace时,“>”将被删除,并且此条件始终保持为false。那么,我有没有办法知道退格上删除的字符。假设您谈论的是UI.InputField,您可能可以使用并检查输入是否是退格字符(\b) 也许是像这样的 [SerializeField]私有InputField\u InputFie

我想知道unity中backspace上删除的字符。我需要检查字符串的特定结束字符

例如abcd 89>

如果字符串以“>”结尾,则检查条件,并将基于此执行一些操作


此检查在backspace上进行,但在按backspace时,“>”将被删除,并且此条件始终保持为false。那么,我有没有办法知道退格上删除的字符。

假设您谈论的是
UI.InputField
,您可能可以使用并检查输入是否是退格字符(
\b

也许是像这样的

[SerializeField]私有InputField\u InputField;
私人空间()
{
如果(!\u inputField)\u inputField=GetComponent();
_inputField.onValidateInput+=检查输入;
}
私有void OnDestroy()
{
_inputField.onValidateInput-=检查输入;
}
专用字符检查输入(字符ChartValidate)
{
如果(charToValidate=='\b')
{
var lastChar=_inputField.text[_inputField.text.Length-1];
//要用lastChar做点什么吗
}
返回黄绿色;
}
据我记忆所及,
onValidateInput
在字符实际添加到输入之前执行,因此在调用例如
onValueChanged
之前执行


作为替代方案,您当然也可以简单地存储字段的最后一个值并检查它,例如

[SerializeField]私有InputField\u InputField;
私有字符串_lastValue;
私人空间()
{
如果(!\u inputField)\u inputField=GetComponent();
_inputField.onValueChanged+=检查输入;
_lastValue=\u inputField.text;
}
私有void OnDestroy()
{
_inputField.onValueChanged-=检查输入;
}
私有字符CheckInput()
{
var lastChar=\u lastValue[\u lastValue.Length-1];
//要用lastChar做点什么吗
//更新最后一个值
_lastValue=\u inputField.text;
}

谢谢您的评论。但这是如何与键盘退格功能一起工作的呢?通常我们的键盘退格-从字符串中删除字符。我想要那个被删除/删除的字符,它会随着键盘退格被删除。我不知道Unity是如何处理这个问题的,但是。。我的第一个示例假设它作为backspace char
\b
传递,因此您可以捕获“验证”它,以便在应用backspace char之前读取并存储当前字符串中的最后一个char。第二个字符在值更改后反应,但存储上一个字符仍然存在的上一个版本,因此可以访问和处理它