react-native-android-unity(二)创建unity项目,并导出为android代码包,嵌入android项目中

3 篇文章 0 订阅
3 篇文章 0 订阅

1.创建unity项目

 

给Main Camera添加脚本Android,使用C#开发,脚本内容如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.InteropServices;//使用DllImport必须引用

public class Android : MonoBehaviour {

    string toastText = "111111";

    [DllImport("androidunity")]//定义.so文件里面的方法:
    private static extern int addNum(int a,int b);

    void OnGUI (){
        int num = 0;
        if (GUI.Button (new Rect(Screen.width / 10 + 50,Screen.height / 10 + 50,Screen.width / 5,Screen.height / 5),"a button"))
        {
            num = addNum (2,2);
            toastText = num.ToString ();

        }
        GUI.Label (new Rect (Screen.width / 5 + 250,Screen.height / 5 + 250,Screen.width / 5,Screen.height / 5), toastText);


    }

    //called from android
    void CalledFromAndroid(string str){
        toastText = str;
    }

}

 

2.运行unity项目:

 

File->Build Settings
如下图:

 

选择运行平台,然后点击Player Settings,右侧出现配置选项:
依次修改:Other Settings下的Package Name: com.raudemo
Device Filter:ARMv7(为了引入android编译的库,实现unity和android通信,需要选择对应的还可以选择x86,不过对应android的库也要选择x86)
 
修改完开始运行:Building And Run
截图如下:

 

功能:有一个按键和一个很小的label,按键和label的字体显示从android传过来的string,以及调用向android传送消息
3.导出android代码包:
File->Building And Settings,修改Build System为Gradle(new),选择Export Project.点击下方export,选择导出目录,即可。
4.android嵌入unity
         实现方式是将unity导出的android代码包得部分代码拷入react-native内部android项目里。导出的代码截图如下:

 

 

 

需要拷贝的代码有:
libs
assets
jniLibs
UnityPlayerActivity.java
UnityPlayerNativeActivity.java
UnityPlayerProxyActivity.java
Activity导入会有报错,需要在项目里导入libs下的unity-classes.jar。
右键unity-classes.jar,选择Add As Library,如图:

 

 

 

修改UnityActivity.java代码:
代码如下:
public class UnityActivity extends UnityPlayerActivity {
    private LinearLayout u3dLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_unity);
        u3dLayout = (LinearLayout) findViewById(R.id.u3d_layout);
        u3dLayout.addView(mUnityPlayer);
        mUnityPlayer.requestFocus();
    }
}

 

至此,嵌入成功。

 

运行react-native程序,在手机上点击可跳转到原生页面,原生页面左侧即嵌入的unity程序。

代码包在系列文章第一篇

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值