步骤
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’ } 注意:如果这时候编译报:Error:Failed to resolve: :VuforiaWrapper: 的错误
解决办法:这个问题是无法解析library里面的aar文件,这个时候只需要在app 里面的build.gradle里面加上这句
repositories
{
flatDir
{
dirs
'libs','../ardemo/libs'
}
}
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());
}
public void
UntiyCallAndroid(byte
[] bytes
){
Log
.d("aaaa","被调用4===="+"byte长度:"+bytes
.length
);
createFileWithByte(bytes
);
Log
.d("aaaa","被调用5====:"+ Environment
.getExternalStorageDirectory());
}
}
添加zxing依赖
compile
'com.journeyapps:zxing-android-embedded:3.5.0'
给unity调用的接口代码
public void
ExitUnity (){
finish();
}
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
.setPixels(pixels
, 0, width
, 0, 0, width
, height
);
return bitmap
;
} catch (com
.google
.zxing
.WriterException e
) {
e
.printStackTrace();
}
return null;
}
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
);
}
public void
ShareWebGL(String url
){
Log
.d("WY+","==调用进入1==");
shareImg(Create2DCode(url
));
}