unity工程导入android,将unity5.6项目导入到android studio项目中

1.首先在unity中打开 File - Build Settings

注意划红线部分的设置

export之前注意先要点开player settings 设置 company name 和 product name, 下面的package name也对应更改

AAffA0nNPuCLAAAAAElFTkSuQmCC

2.export 之后的目录如下

AAffA0nNPuCLAAAAAElFTkSuQmCC

将assets整个拷贝到Android项目的/app/src/main/目录下。

将libs中的unity-classes.jar以及其他jar文件拷贝到/app/lib/目录下。并Add As Library。

将libs中的armeabi-v7a以及x86(如果有的话)连同文件夹一起拷贝到/app/src/main/jniLibs/目录下。

3. 新建一个 activity 用来显示unity界面

代码如下

xml<?xml  version="1.0" encoding="utf-8"?>

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#ffffff"

android:orientation="vertical"

style="@android:style/Theme.Black.NoTitleBar"

>

android:id="@+id/ll_unity_container"

android:layout_width="300dp"

android:layout_height="400dp"

android:layout_centerHorizontal="true"

android:layout_marginTop="30dp"

android:orientation="vertical"

android:background="#f0f0f0"

/>

android:id="@+id/btn_rotate"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/ll_unity_container"

android:layout_centerHorizontal="true"

android:layout_marginTop="20dp"

android:text="一个button"

android:textSize="17sp"

/>

activityimport android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.LinearLayout;

import com.unity3d.player.UnityPlayer;

import com.unity3d.player.UnityPlayerActivity;

public class unityactivity extends UnityPlayerActivity {

private LinearLayout mLlUnityContainer;

private Button mBtnRotate;

@Override

protected void onCreate(Bundle bundle) {

super.onCreate(bundle);

setContentView(R.layout.activity_unityactivity);

initView();

}

private void initView() {

mLlUnityContainer = (LinearLayout) findViewById(R.id.ll_unity_container);

mBtnRotate = (Button) findViewById(R.id.btn_rotate);

//将Unity的View添加到布局里

View scene = mUnityPlayer.getView();

mLlUnityContainer.addView(scene);

mBtnRotate.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

//向Unity的Cube对象上的脚本里的RotateCube方法发送消息

//第三个参数是传递的消息

//通过UnitySendMessage向Unity发送消息,

//三个参数分别是接收消息的GameObject,MethodName,参数;

//UnityPlayer.UnitySendMessage("Cube", "RotateCube", "80");

}

});

}

}

最终显示效果:

AAffA0nNPuCLAAAAAElFTkSuQmCC

这里讲一下踩到的几个坑

1.大多数教程提到了在build project之前勾选google android project

然而unity5.6并没有该选项,取而代之的的是build system下的ADT选项,该选项功能与之前的google android project相同

AAffA0nNPuCLAAAAAElFTkSuQmCC

2.当我打开unityactivity的时候显示your hardware does not support this application弹窗,无法正常打开

这是so文件不同导致的

由于unity导出的项目中只有armeabi-v7a版本的so,所以我把安卓工程中原有的其他平台的so都删除了只剩下了

AAffA0nNPuCLAAAAAElFTkSuQmCC

这样就可以正常打开该activity了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值