unity3d-2dtools - 如何将 TouchScreenKeyboard active 设置为 false?
问题描述
我有一个统一的游戏,我在其中实例化了一个 TouchScreenKeyboard:
keyboard = TouchScreenKeyboard.Open(
"", //text
TouchScreenKeyboardType.Default, //type
false, //autocorrect
true //multiline
);
稍后,在 中Update()
,我运行以下命令:
keyboard.active = false;
Debug.Log("Turned off keyboard. Now: " + keyboard.active.ToString());
但是,在我的调试器中(通过 xcode 在 iPhone 上运行),我只看到:
关闭键盘。现在:真
它变得非常奇怪的地方:应用程序确实在屏幕上关闭键盘的情况下正确启动,但如果我记录keyboard.active
它说“真”。
当我开始游戏时,键盘会弹出。但是,它不会在游戏会话后消失(我keyboard.active = false;
再次运行)。
但是,如果我此时取消应用程序的焦点,键盘就会消失,并且当我记录状态时Debug.Log(keyboard.active.ToString());
它显示为 false。
是什么赋予了?这是一个奇怪的操作系统交互吗?我应该想出一种方法来欺骗应用程序的焦点,还是我缺少一个技巧来完成这项工作?在示例代码中,他们使用了这行代码:https ://docs.unity3d.com/ScriptReference/TouchScreenKeyboard-active.html
这是统一2020.2.0f1
解决方案
推荐阅读
- c# - Unity 中其他脚本中的变量
- database-schema - 剧院座位数据库架构
- java - 使用 Eclipse WindowBuilder 和 JCA-JCE 方法的问题
- javascript - 如何在javascript中管理多个if和else
- asp.net-core - ASP.NET Core 2:在 `Startup()` 中,如何指定其他参数来选择正确的配置?
- unit-testing - 如何验证对用作委托(委托)的参数进行的调用?
- reactjs - 公共 index.html 中的 CRA 变量替换
- python - 如何检查单元格值是否仅包含“空格”?
- javascript - 通过ajax将Javascript变量插入数据库
- java - 如何在每次测试之前或之后让 Spring Cloud Contract 重置 WireMock