Unity接入SDK后InputField失效【巨坑】
最近项目接SDK后遇到一个非常灵异的现象,游戏中所有的Input输入框都失效了,监听ValueChanged,EndEdit返回的都是空。好在后面查到了有前辈踩过这个坑,这里姑且记录一下原文连接
假如 要向游戏中接入SDK,我们通常有两种做法:
将游戏项目从U3D中导出eclipse工程,然后用eclipse打开,具体的接入工作与向普通的android应用中接入无异,完成SDK接入工作之后,直接用eclipse进行项目打包;
在eclipse中新建一个android项目,包名与游戏项目名称保持一致,将U3D引擎中的classes.jar导入到新建项目的libs目录中,将SDK接到这个新建的android工程中,记住此项目的启动Activity需继承自UnityPlayerActivity而非Activity,接入完成后将android工程中的资源文件(包括:res、libs、assets还有配置文件AndroidManifest.xml等资源目录文件复制到U3D项目中的AssetsPluginsAndroid目录下),然后将项目的src和gen目录Explore成jar包放到AssetsPluginsAndroidbin目录下,即可在U3D中完成打包。
关于SDK接入完成后发现游戏内部的InputFied等输入框组件无法接收软键盘输入文件的问题,我是在接入应用宝SDK的时候遇到的,查到最后才发现了这个大坑,如今解决问题,记录一下,防止有人跟我一样掉进这个坑里。
这种情况通常是在android工程中使用了类似:UnityPlayer mPlayer = new UnityPlayer();的方法创建了新的UnityPlayer对象,虽然这个对象没有界面表现,但是却会接收其他一些类似键盘输入内容回调之类的消息,导致软键盘输入内容无法传递到游戏中去,所以建议尽量少用这种。