当Android键盘出现时,Unity调整大小屏幕

时间:2017-03-05 11:51:40

标签: c# android unity3d mobile keyboard

我实际上正在为具有统一性的Android设备创建一个简单的游戏。

在游戏中,玩家必须写一个数字。

所以我使用统一UI中的输入字段对象。

当我在我的设备上使用它时,我有一个奇怪的事情;

当Android键盘出现时,unity会调整屏幕大小。

当键盘消失时,Unity会再次将屏幕重新调整为正常模式,但是当它执行此操作时,它绝对是丑陋的! (我在这个过程中看到一些奇怪的人工制品(以毫秒为单位),但它非常难看。)

我想知道我是否可以订购统一而不调整任何尺寸,所以无论是否有键盘,视图都保持不变?

非常感谢! :)

1 个答案:

答案 0 :(得分:0)

很抱歉我花了几天时间回复,但我之前在源文件中找不到它,因为我看错了地方。你马上就会明白为什么。这是你需要做的:

  1. 假设您的项目中没有自定义的AndroidManifest.xml(如果这样做,请跳至4),构建您的游戏。
  2. 打开项目的文件夹。转到Temp / StagingArea并在您选择的编辑器中打开AndroidManifest.xml。复制内容。
  3. 在Unity内部,在Assets文件夹的根目录中,创建一个“插件”文件夹。在里面,创建一个'Android'文件夹。在此文件夹中,创建一个名为AndroidManifest.xml的新文件。将您从步骤2中抓取的文件的内容粘贴到其中。
  4. 在AndroidManifest.xml文件中,在activity标记内,添加以下自定义属性:android:windowSoftInputMode =“adjustNothing”,以便最终标记看起来像这样:
  5.     <activity android:windowSoftInputMode="adjustNothing" android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:screenOrientation="fullSensor" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale">
          <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
          </intent-filter>
          <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        </activity>
    

    执行此操作后,屏幕应在键盘出现后保留其内容。

    注意: NOT 使用我在此处提供的代码。按照步骤为您的Unity版本获取正确的基本AndroidManifest.xml文件并编辑该文件。每次将Unity更新到更新版本时,请务必更新清单文件。他们可以随时更改该文件,而不使用最新版本会在您的应用程序中产生不良和难以跟踪的副作用。