Unity 编写并使用Android包

本文详细介绍了如何在Unity中编写Android aar包,包括创建安卓项目,添加Unity jar包,配置build.gradle,编写代码,修改Manifest,打包aar。此外,还讲解了如何在Unity中使用aar包,处理集成过程中的问题,如修改Manifest,避免重复引用,以及解决Gradle构建和依赖问题。
摘要由CSDN通过智能技术生成

Unity 编写并使用Android包

Author: ziang.hu
Date: 19.1.15 15:39

使用软件版本:

Unity : 2017.4

Android Studio : v3.2.1

编写Android的aar包

1. 创建安卓项目和Module

在这里插入图片描述

PS:其中安卓项目包名并不是很重要,可以随便设置。

选好对应的SDK后新建项目,Activity选择Empty Activity。(其他Activity也行,但是其实并不会使用Activity,无所谓)

2. 新建Library Module

File -> New -> New Module,选择Android Library。

在这里插入图片描述

PS:这个module是真正用来打包的,Minimum SDK要设置成和Unity一样,包名可以设置成一样也可以不设置*。

至此,项目下面就有两个Module,app和mylibrary。之后的大部分操作都在mylibrary这个文件夹中操作。

3. 引用Unity中的jar包

去Unity的安装目录搜索classes.jar,可以找到Unity的jar包。(如果有多个的话,任取一个即可)

在这里插入图片描述

复制该包到mylibrary/libs下,然后将classes.jar添加成module的第三方库。(右键 -> Add as Library)

在这里插入图片描述

4. 配置build.gradle

接下来需要修改mylibrary下的build.gradle配置文件,修改的地方如下。

android {
   
    // 编译SDK版本,和Unity同步(Unity中的版本一般比较低)
    compileSdkVersion 24

    defaultConfig {
   
        // 最小SDK版本,和Unity同步
        minSdkVersion 18
        // 目标SDK版本,和编译SDK版本相同
        targetSdkVersion 24
        versionCode 1
        // 版本名称,和Unity同步
        versionName "1.0"
    }
}

// ...

dependencies {
   
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    // Unity中不需要appcompat支持,删除或注释下面一行
    // implementation 'com.android.support:appcompat-v7:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation files('libs/classes.jar')
}

5. 编写实际的代码

准备工作做好后,接下来就可以编写实际要用到的代码了。

复制app文件夹下的MainActivity到mylibrary中的指定位置。(Activity就这个作用了)

修改包名,修改MainActivity中的基类为UnityPlayerActivity,并添加引用,删掉setContentView函数。

修改后的文件如下:

package com.mycom.mylibrary;

import android.os.Bundle;
import com.unity3d.player.UnityPlayerActivity;

public class MainActivity extends UnityPlayerActivity {
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
    }
}

PS:AS里面有自动添加包依赖的功能,具体可以百度。

之后就可以在MainActivity中添加所需要的功能,举例如下:

package com.mycom.mylibrary;

import android.os.Bundle;
import com.unity3d.player.UnityPlayerActivity;

public class MainActivity extends UnityPlayerActivity {
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
    }

    // static 函数/变量
    public static int sa = 10;
    pub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值