1.Unity调用Android的方法默认不是在UI线程执行,所以在Android上写一些页面的重绘的方法,让Unity去调用时,注意要在Android中添加对应的runOnUiThread才可以;
2.Android library中包含资源,此时需要将资源导入到Unity项目中,那么在Android中就不可以直接使用R.id来寻找资源,而是必须通过下面方式:
public static int getLayoutResIDByName(Context context, String name)
{
return context.getResources().getIdentifier(name, "layout",
context.getPackageName());
} public static int getIdResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "id",
context.getPackageName());
} public static int getStringResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "string",
context.getPackageName());
} public static int getDrawableResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "drawable",
context.getPackageName());
}
3.Android与Unity之间的调用:
(1).Unity调用Java:UnityEngine提供了两个类来分别访问Java的实例对象以及类对象:AndroidJavaObject
与AndroidJavaClass,前者表示
java.lang.Object
或其子类,后者表示java.lang.Class
。
(2).Java调用Unity:
<1>.通过AndroidJavaProxy
进行无感知调用
<2>.通过com.unity3d.player.UnityPlayer.UnitySendMessage
方法显式调用