android集成unity项目

步骤

1、新建项目(已有项目略过)
2、import module,操作如图:
在这里插入图片描述
在这里插入图片描述
3、File–project structrue,之后按图操作:
在这里插入图片描述
4、
在这里插入图片描述
5、 在主工程中打开AndroidManifest.xml文件,作如下修改:
(1) 在Manifest根节点添加一个属性:

xmlns:tools ="http://schemas.android.com/tools"

(2) 在Application节点添加一个属性:

tools:replace="android:icon, android:theme"

在这里插入图片描述

6、在buid.gradle 中的 defaultConfig项加入

ndk {
            abiFilters 'armeabi-v7a'
        }

ndk {
abiFilters ‘armeabi-v7a’
}
在这里插入图片描述
7、跳转到UnityPlayerActivity
startActivity(new Intent(this, UnityPlayerActivity.class));
在这里插入图片描述

附android代码:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        startActivity(new Intent(this, UnityPlayerActivity.class));

    }
    public static void UntiyCallAndroid(String s){
        Log.d("aaaa","被调用1===="+s);
        UnityPlayer.UnitySendMessage("_Scripts","AndroidCallUnity","hello UNITY");
        Log.d("aaaa","被调用2====:"+ Environment.getExternalStorageDirectory());

//        int i= com.secondfury.galleryscreenshot.MainActivity.addImageToGallery(Environment.getExternalStorageDirectory()+"/111.png");
//        Log.d("aaaa","被调用3===="+i);
    }
    public  void UntiyCallAndroid(byte[] bytes){
        Log.d("aaaa","被调用4===="+"byte长度:"+bytes.length);
//        String path1=this.getExternalFilesDir("face")
//        FileUtil.saveBitmapToSDcard(Bytes2Bimap(bytes),Environment.getExternalStorageDirectory()+"/face/111.png");
        createFileWithByte(bytes);
//        UnityPlayer.UnitySendMessage("_Scripts","AndroidCallUnity","hello UNITY");
        Log.d("aaaa","被调用5====:"+ Environment.getExternalStorageDirectory());

//        int i= com.secondfury.galleryscreenshot.MainActivity.addImageToGallery(Environment.getExternalStorageDirectory()+"/111.png");
//        Log.d("aaaa","被调用6===="+i);
    }
   
}

添加zxing依赖

compile 'com.journeyapps:zxing-android-embedded:3.5.0'

给unity调用的接口代码

	/**
     * 退出
     */
    public void ExitUnity (){
        finish();
    }

    /**
     * 将字符串生成二维码图片
     *
     * @param str
     * @return
     */
    private Bitmap Create2DCode(String str) {
        //生成二维矩阵,编码时要指定大小,
        //不要生成了图片以后再进行缩放,以防模糊导致识别失败
        try {
            BitMatrix matrix = new MultiFormatWriter().encode(str, BarcodeFormat.QR_CODE, 200, 200);
            int width = matrix.getWidth();
            int height = matrix.getHeight();
            Log.d("WY+", "宽高为:" + width + "|" + height);
            //  二维矩阵转为一维像素数组(一直横着排)
            int[] pixels = new int[width * height];
            for (int y = 0; y < height; y++) {
                for (int x = 0; x < width; x++) {
                    if (matrix.get(x, y)) {
                        pixels[y * width + x] = 0xff000000;
                    }else {
                        pixels[y * width + x] = 0xffffffff;//新加,不然图片都是黑色的
                    }
                }
            }
            Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
            // 通过像素数组生成bitmap, 具体参考api
            bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
            return bitmap;
//        } catch (WriterException e) {
//            e.printStackTrace();
        } catch (com.google.zxing.WriterException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 分享图片(直接将bitamp转换为Uri)
     *
     * @param bitmap
     */
    private void shareImg(Bitmap bitmap) {
        Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, null, null));
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_SEND);
        intent.setType("image/*");//设置分享内容的类型
        intent.putExtra(Intent.EXTRA_STREAM, uri);
        intent = Intent.createChooser(intent, "分享");
        startActivity(intent);
    }

    /**
     * 分享二维码图片到微信QQ
     * @param url
     */
    public void ShareWebGL(String url){
        Log.d("WY+","==调用进入1==");
        shareImg(Create2DCode(url));
    }

猜你喜欢

转载自blog.csdn.net/wy313622821/article/details/107120938