# Unity_MobileInput **Repository Path**: yboy/Unity_MobileInput ## Basic Information - **Project Name**: Unity_MobileInput - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-08-19 - **Last Updated**: 2023-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UnityMobileInput ### 介绍 1. github地址:https://github.com/mopsicus/UnityMobileInput 2. 功能 - 去掉移动端InputField自带的丑陋的输入box。 - 根据键盘高度自动调节输入框在UGUI中的位置(使用KeyHeightMono.cs)。 - 使用原生自带的输入框贴到InputField上,可以实现复制、粘贴、密码本、Clear、Done、Search、Return。 3. 修复原版的Bug和改进 + ```c# //改进:在MobileInputField.cs上增加该变量 public string text { get { return Text;} set { Text = value;} } ``` + ```c# //修复bug:在MobileInputField.cs上修改 //在此处修改为使用inputfield.text 之前使用inputfield.textcompoent 在密码类型的inputfield上 会出现bug this.SetTextNative(this._inputObject.text); ``` + ```c# //改进:在MobileInputField.cs上修改 //把原生输入框的背景的alpha设置为0 不然会有白底 _config.BackgroundColor = new Color(_inputObject.colors.normalColor.r, _inputObject.colors.normalColor.g, _inputObject.colors.normalColor.b, 0); // _config.BackgroundColor =_inputObject.colors.normalColor; ``` + ```c# //修复bug:在MobileInputField.cs上修改 //ios按home键之后再切回应用Input消失了 private void OnApplicationFocus (bool hasFocus) { if (!_isMobileInputCreated || !this.Visible) { return; } //this.SetVisible (hasFocus); } ``` + 修改MobileInput.cs见[MobileInput](https://github.com/yoyohan1/Unity_MobileInput/blob/master/UnityMobileInput/Scripts/MobileInput.cs) 增加onFocus事件 解决了点不同输入框时 输入框需要调整高度到UGUI可见位置 + 修改MobileInputReceiver.cs见[MobileInput](https://github.com/yoyohan1/Unity_MobileInput/blob/master/UnityMobileInput/Scripts/MobileInput.cs) 增加UNITY_EDITOR模式显示模拟键盘 + 增加KeyHeightMono.cs见[KeyHeightMono](https://github.com/yoyohan1/Unity_MobileInput/blob/master/UnityMobileInput/Scripts/KeyHeightMono.cs) 以使用Android和iOS端根据键盘高度自动调节输入框在UGUI中的位置 + 修改KeyboardListener.java见[KeyboardListener](https://github.com/yoyohan1/Unity_MobileInput/blob/master/AndroidJar_MobileInput/mobileinput/src/main/java/ru/mopsicus/mobileinput/KeyboardListener.java) 解决了安卓输入法切换时键盘高度变化 + 修改MobileInput.mm见[MobileInput.mm](https://github.com/yoyohan1/Unity_MobileInput/blob/master/UnityMobileInput/Plugins/iOS/MobileInput.mm) 解决了iOS输入法切换时键盘高度变化 + iOS的bug 横屏第一个场景中使用该插件的InputField会不出现原生UI 除非打开闪屏动画或者打开竖屏。(测试了一天时间才发现造成bug的原因)解决方法为 打开闪屏动画 把闪屏动画列表设为空。偶现横屏Home键再返回应用也会不出现输入框。 ### 接入 ##### Unity 1. 拷贝文件到对应目录 2. 发布时必需挂载Plugins.cs并且放在第一个启动场景!因为Android端需要在第一个界面初始化时做一些方法调用。不然会造成无法使用插件。 3. 在需要使用插件的InputField上添加MobileInputField.cs插件,并设置参数: + Search、Return、Done事件。可以绑定Done事件为MobileInputField.Hide() ​ 示例1:使用Next事件绑定下一个MobileInputField的SetFoucs(true)事件 以激活下一个InputField。 ​ 示例2:使用Done事件绑定自身MobileInputField的Hide()事件 。 + iOS增加两个参数Clear、Done。Clear为输入框后边的X按钮 Done为输入框上方的按钮。 + 自定义字体:拷贝TTF字体资源放到StreamingAssets 并替换default为字体的名称即可。 4. 在GameObject上挂载KeyHeightMono 实现根据键盘高度自动调节输入框在UGUI中的位置。 ##### 安卓 1. 修改AndroidManifest.xml ```java ... activity ... android:windowSoftInputMode="adjustNothing"> ... ``` ##### iOS: 无 ### 效果图 ![image](https://raw.githubusercontent.com/yoyohan1/Unity_MobileInput/master/Unity_MobileInput/Assets/UnityMobileInput/%E7%A7%BB%E5%8A%A8%E7%AB%AFInputField%E6%BC%94%E7%A4%BA.gif)