新建一个模块,File - New - New Module,选择Android Library
新建一个模块,File - New - New Module,选择Android Library
将unity安装目录下Editor - Data - PlaybackEngines - AndroidPlayer - Variations - mono - Release - Class.jar拷贝到安卓Project目录下的自己创建的库中的libs文件夹下,并且右键add as library到模块中
安卓目录下,AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sikiedu.testlibrary"> <application android:allowBackup="true" android:supportsRtl="true"> <activity android:name=".MainActivity" android:label="UnityAndroidTest" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> </activity> </application> </manifest>
Jar Aar
调用方式可以是C#调用,也可以是Java做
修改MainActivity,或者给一个非Activity的class
上述三种可以任意组合
官方不再推荐Jar包
File - New - New Module创建新模块,并在新模块中创建一个空的activity
数字签名无效则不能用,属性,数字签名
1.unity导出工程到安卓内修改,由安卓打apk
2.安卓将功能提供成插件给unity用,由unity打包apk
每一个页面/界面都是一个Activity,例如QQ的每一个页面都是Activity
unity将内部所有的内容做成一个Main Activity,将这个Main Activity在安卓机上显示
然后在Unity打包出来的Main Activity里面加入逻辑,则完成了扩展功能
或者由安卓提供插件Plugins,Unity整合发布
fingerId是用来识别当前手指的唯一表示
deltaPosition当前位置与上次位置之间的差
deltaTime本次记录touch对象状态与上次记录touch状态之间的时间差
tapcount为touch对象所对应的手指点击屏幕的次数
phase表示当前手指所对应的touch对象的阶段(状态)
每当一个手指触摸屏幕时,unity都会为其生成一个touch对象
input.touchCount可以获取当前touch对象的个数
unity会将当前存在的所有touch对象放在input.touches这个数组中
另一种方式获取指定index的touch对象:input.gettouch(index)
实际视口=初始视口*初始高宽比/实际高宽比
Canvas Scaler 一般用Scale With Screen Size
这样更改屏幕分辨率,ui也会同步缩放
视口自适应 - 摄像机
ui自适应 - ugui适应
ui自适应:1.锚点;2.缩放;
Android Studio 创建新工程,Tools - AVD Manager - Create Virtual Device - Phone - 选择相应的设备 - next
x86 Images - Oreo - next - finish
点击actons中的启动,则可以模拟出安卓手机
Project Settings - Editor,Unity Remote - Device - Any Android Device
手机中,设置 - 开发人员选项/关于手机 - USB调试
安装Unity Remote
手机和电脑连接usb线,确认手机中显示usb已连接和已连接usb调试
Unity Remote
Android Studio中,Android SDK - SDK Tools - Google USB Driver
Google Play上下载Unity Remote5,
sdk中的tools太新了,unity无法识别
解决方法,android/sdk替换旧版的tools
设置包名Identification - Package Name
设置签名Publishing Settings - Keystore - Use Existing Keystore - Browse Keystore 选择密钥文件
Keystore password 输入密码
Alias - 选择密钥文件
Password 输入密码
同一签名的apk可以覆盖安装
Interal:
可以不签名(使用默认的debug签名)
Gradle:
必须要求自己签名
Internal:
Unity内置,仅需要Android SDK支持,不能导出工程,适用于仅使用到Unity开发的项目
优点:简单,逻辑由unity完成即可,不需要和安卓交互
Gradle:
使用Gradle进行构建,需要Android SDK与Gradle支持,可以导出Android Studio工程,适用于Unity与Android交互的项目
如果选择Gradle,勾上Export Project
api27不做高端的安卓开发用不到,可以取消勾选
相应的26需要勾选,点击apply